M4USB设备模式,实现自定义HID通讯

2019-07-20 02:06发布

公司我负责的项目有个特点就是,使用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函数,移植时请注意替换。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
xql923
1楼-- · 2019-07-20 03:45
 精彩回答 2  元偷偷看……
xql923
2楼-- · 2019-07-20 05:58
 精彩回答 2  元偷偷看……
tonyfrankyao
3楼-- · 2019-07-20 08:19
搞定了吗
heey
4楼-- · 2019-07-20 13:12
哈哈1344764552
5楼-- · 2019-07-20 18:56
 精彩回答 2  元偷偷看……
heey
6楼-- · 2019-07-20 21:37
 精彩回答 2  元偷偷看……

一周热门 更多>