求助,关于linux下usb通信的c语言程序

求助,关于linux下usb通信的c语言程序,第1张

不知道你要提取到哪里,自作主张把提取出内容乎弯放入到txt文档中。输入文件:in.txt输出文件:out.txt代码如下:已在GCC测试。#includeintmain(intargc,char*argv[]){charbuffer[32]char*posFILE*fp_in=fopen("in.txt","r")FILE*fp_out=fopen("out.txt","w")if(!fp_in)returnwhile(!feof(fp_in)){fgets(buffer,32,fp_in)pos=strchr(strchr(buffer,'.')+1,'.')/*就这一句比较型顷答难理解,意思卜慧是查找第二个'.'出现位置*/*pos='\0'/*找到后,赋值为'\0',为fputs输出做准备*/fputs(buffer,fp_out)putc('\n',fp_out)}fclose(fp_in)fclose(fp_out)}

1、自雀谈己写一个c++的USB代理类,直接和底层驱尘判动通信

2、C#通过这个来调用

单片机只是一块芯片,需要基本电路及相应外围设备。

仿真可以用proteus,编程可以用Keil,调试用串口助手。

单片机可以通过RS232转串口和电脑通信(还需要RS232驱动)。

或者

1、买一个USB到RS232串口转换接口

2、单片机加一个TTL到RS232电平转换芯片。

如果是带USB接口的单片机,则直接用一个简单的接口电路就可以接到PC了.....

若是不带USB接顷兄碰口的单片机,则还需要用到一个桥接芯片,通常是利用单片机的USART接口,加上桥接芯片,例如PL2303之类的,就可以接到PC了.

我来说下我做过的USB通信,我没有做过DSP跟上位机的通信,我只做过ARM类的STM32跟上位机的数据传递,虽然做过但是也不是很 懂,只是略知一二,我来说说我怎么做的吧,我是这么实现的:

USB是个很复杂的协议,你如果完全搞懂,我估计没有几个月专心钻研是不行的,但是如果只是能实现你的这个功能,我估计不是很复杂。

首先来说说USB通信:

USB通信传输方式分为四种:控制,中断,批量,同步传输四种,这个你可以看看网上资料,然后我用STM32通信,因为数据量不是很大,我用的是中断传输方式,但是DSP数据量应该会比较大,不知道中断传输行不行,但是一般问题不大。

传输方式说完了,再说说USB设备类型,你每次插usb设备到电脑上的时候就会有提示,这是一个什么设备,USB设备类型就是说的这个意思,是鼠标还是键盘还是别的什么的,如果你选用标准的类,你就不用自己写上位机(PC)的驱动程序,但是如果不用标准的类,就是用自乱好定义的类就要自己写上层的设备驱动程序,就是所谓的DDK,WDM,WDF什么的,你没乱衡写过这方面的还真有点棘手,但是也不一定要写驱动程序,你可以试试有个类叫HID类,这个类在USB通信的时候用的还挺多的,不过这个类也有缺点,这个地方还要说一点,USB还分低速,全速,高速三种,不太了解DSP,不知道他支持什么模式,但是USB2.0的全速应该至少可以支持的。

USB2.0全速模式HID用中断方式每秒最多可以传输64KB的数据,不知道能不能达到你的要求,但是我估计一哗陪铅般问题不大了,如果你这歀DSP能支持高速模式,每秒用这种方式可以传输高达22MB的数据,这个速度一般问题不大了。

你可以照着我说的思路,去网上搜搜人家写好的程序,肯定有人做过DSP的USB通信,然后你按照自己的要求改一改,主要应该是USB的设备描述符部分要自己修改,然后可能还要根据自己的电路改改配置什么的,上位机软件网上有源代码的多的是,然后自己摸索摸索,我估计你要是编程水平还可以的话,只是摸索USB,一两个星期完全没有问题,祝你好运!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12252310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存