STM32U575+tinyUSB+Keil

前言:

项目中需要移植tinyUSB来开发USB功能,百度上没有关于keil移植tinyUSB的教程,刚好本人误打误撞初步移植成功了,所以在此分享一下。 关于TinyUSB,请进入官方网站了解和下载源码。

开始移植

1.源目录结构

移植中会用到的目录有src,hw,examples三个目录中的文件

2.src

官方移植说明表示将src内所有的文件加入工程,实际使用中不需要全部添加

说明:由于demo中没有使用host和typec,所以这2个目录下的文件也没有添加到工程。

这里重点说明一下选择portable

官方的文档有有介绍各个类型的MCU所需要使用的驱动类型,也就是我们这里所需要选择portable,

根据文档显示,STM32U575需要使用dwc2,在portable文件夹中找到并添加到工程

3.hw

选择对应的开发板型号即可,如果不是完全相同的开发板型号,随便选一个开发板的board.h,然后修改下对应的PIN脚即可。

4.examples

选择其中一个例子,把例程中src目录下的源文件添加到工程中,注意在tusb_config.h中定义用到的MCU类型。我这里使用的例子是examples/device/hid_composite

examples中的main.c可以替换cubeMX生成的main.c,至此,项目应该是可以编译通过的。

调试

debug是查看callstack,发现在调用handle_bus_reset()函数后会触发hardfault。

修改代码如上图所示,重新编译下载,电脑中显示出了tinyUSB设备。

至此,tinyUSB移植的demo完成,后面根据项目的需求,添加class下的组件,并参考examples实现功能即可。

最后,感谢大佬nickfox-taterli的demoGitHub - nickfox-taterli/tinyusb_stm32f769disco: STM32F769 Disco + Keil Project + TinyUSB,这是我找到的唯一 一个关于tinyUSB+keil的例程。

最最最后,吐槽一下调试过程中一个很搞的问题。调试时总是随机的出现hardfault,没有规律,callstack也没有可用的内容。还好买了2个开发板,在另一个开发板调试没问题,初步判定是第一个开发板硬件问题。。但是也说不出硬件哪里的问题。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值