| [i=s] 本帖最后由 momoto 于 2025-1-14 15:57 编辑 [/i]<br />
<br /> [i=s] 本帖最后由 momoto 于 2025-1-13 15:53 编辑 [/i] 最近打算学习下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。 
 在 tusb_config.h文件中定义CFG_TUSB_MCU // defined by board.mk
#ifndef CFG_TUSB_MCU
//#error CFG_TUSB_MCU must be defined
#define CFG_TUSB_MCU OPT_MCU_CH32V307
#endif
 之后可以尝试编译下项目,将报错的代码行进行修改,这步没有截图。主要报错点是头文件的引入,将相关  "bsp/board_api.h"修改为"board_api.h"即可。 测试将编译后的文件下载到开发板,将数据线TYPE-C口插入开发板P6,另一端插入电脑。电脑此时可以正常枚举出HID设备,按USER按键鼠标指针沿斜线进行滑动,LED灯间隔1s进行闪烁。 
 总结这次测试只是一个简单的移植,未做其他相关深入的研究,还有很多需要学习,USB协议太复杂了,本人新手小白,有错误的地方还请大家指出。  附件:22-TinyUSB_HID.zip
 |