[i=s] 本帖最后由 momoto 于 2025-1-13 15:53 编辑 [/i]<br />
<br />
最近打算学习下USB协议栈,看来看去选了TinyUSB。搜了下好像基于沁恒CH32系列的移植不是很多,本次移植也是在参考了MM32系列的移植教程下,进行了移植。所以写下这篇文章,加深**和备忘。
TinyUSB下载和目录
下载地址:GITHUB
主要用到src、hw、examples三个文件夹中的内容
移植
新建一个基础项目
- 将TinyUSB文件夹中的src文件夹全部复制到项目中
- 将hw-->bsp-->ch32v307文件夹复制到项目中
- 将examples-->device-->hid_composite文件夹中的所有文件,复制到项目中User文件夹中(可提前删除User文件夹中的所有文件,只保留我们复制的文件)
删除Debug文件夹,我的项目结构如下
将相关文件夹加入到编译路径,同时删除原项目中Debug的路径
在 family.c 文件中修改Button和LED的GPIO口,可也按照例程中的相关设定连接Button和LED对应的GPIO。
之后可以尝试编译下项目,将报错的代码行进行修改,这步没有截图。主要报错点是头文件的引入,将相关 "bsp/board_api.h" 修改为 "board_api.h" 即可。
测试
将编译后的文件下载到开发板,将数据线TYPE-C口插入开发板P6,另一端插入电脑。电脑此时可以正常枚举出HID设备,按USER按键鼠标指针沿斜线进行滑动,LED灯间隔1s进行闪烁。
总结
这次测试只是一个简单的移植,未做其他相关深入的研究,还有很多需要学习,USB协议太复杂了,本人新手小白,有错误的地方还请大家指出。
附件:22-TinyUSB_HID.zip |