公司我负责的项目有个特点就是,使用GPRS无线联网,然后串口挂一堆设备帮它们转发TCP数据。所以串口特别紧张。但是由于设备没显示器。所以必须保留一路串口进行调试,运行状态打印,参数配置,软件升级。以后公司决定模块使用4G模块,就有了用USB驱动4G模块的想法。由于M4单片机带OTG,也就是可以使用USB主机模式,所以最近使用了一下M4单片机。先研究了一下USB部分。用原子的M4探索者开发板,当然是先研究通设备模式,再研究主机模式。做了一个USB设备通过HID的方式与PC通讯,这样就可以省出一路串口了。通讯速度还能比115200快一些。将来的想法是USB_HS模块作为主机,和4G模块通讯。USB_FS模块作为设备与串口通讯。全部串口省出来与外部设备通讯。
简单说一下,使用M4探索者开发板,全速USB模块。枚举为自定义HID设备,通过报告的形式通讯。由于报告每次都是收发固定字节数。所以实现了一个“块”转“流”的功能。
PC端程序编写了一个类似串口助手的软件。就可以通讯了。PC发送给M4的数据,通过串口1(115200)打印出来。
希望能对研究M4USB的朋友友一定帮助。
提供源码,工程使用MDK4.72A。KEIL5用了几次不会啊,思想跟不上了大概是, HAL库也不太愿意使用。
里面的printf的调试用的,都//了,没有删除。
上位机软件需要.NET4.0
使用了OS的vTaskDely函数,移植时请注意替换。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
搞定了,代码在另一个帖子
http://www.openedv.com/forum.php ... d=266675&extra=
一周热门 更多>