打印
[应用相关]

STM32的ITM跟踪调试功能介绍及实现(五)USB调试实例

[复制链接]
576|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
之前调试USB设备程序时,使用的是通过串口来打印变量,实际测试时,因为串口速率问题,串口会丢包;如果迁就串口慢速输出,则可能影响到USB的实时通讯,造成USB设备识别失败。有了ITM,USB实时调试的问题可以解决了!


作者:海东青电子
链接:https://www.jianshu.com/p/08769cc433c3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
沙发
decoding|  楼主 | 2020-6-21 12:24 | 只看该作者
为了生成一个USB设备应用,之前测试使用的NUCLEO-F411RE板子不再适用了,这次换了一个支持USB应用的板子:NUCLEO-F412ZG:

使用特权

评论回复
板凳
decoding|  楼主 | 2020-6-21 12:25 | 只看该作者
使用STM32CUBEMX针对F412ZG板子生成一个KEIL版本的、支持USB设备的最基本的例程(模拟USB鼠标),将上一讲中的retarget.c文件添加进来。在文件 stm32f4xx_it.c 中找到中断处理入口函数 OTG_FS_IRQHandler(),添加一个打印变量的语句:

printf("%d\n", ++dwCnt);     //dwCnt是预先定义的对USB中断进行计数的变量

使用特权

评论回复
地板
decoding|  楼主 | 2020-6-21 12:25 | 只看该作者

使用特权

评论回复
5
decoding|  楼主 | 2020-6-21 12:26 | 只看该作者
编译、下载、进入debug、全速运行,看到printf输出数据如下:

使用特权

评论回复
6
decoding|  楼主 | 2020-6-21 12:27 | 只看该作者
板子通过USB连入PC后,可以看到USB设备枚举过程中,USB中断被进入了82次(这个数值每次测试可能有轻微变化);用类似方法可以打印USB通讯过程中的双向数据,便于理解USB通讯原理或排错。

ITM的专题到今天告一段落了,感谢大家的陪伴。限于本人的水平,文中不免会有谬误,请留言、赐教!

使用特权

评论回复
7
decoding|  楼主 | 2020-6-21 12:27 | 只看该作者
作者:海东青电子
链接:https://www.jianshu.com/p/08769cc433c3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
8
八层楼| | 2020-7-9 15:04 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
9
观海| | 2020-7-9 15:05 | 只看该作者
我好像有一块这个板子

使用特权

评论回复
10
guanjiaer| | 2020-7-9 15:05 | 只看该作者
楼上的 正好可以试试

使用特权

评论回复
11
heimaojingzhang| | 2020-7-9 15:05 | 只看该作者
不错  看着效果很好

使用特权

评论回复
12
keaibukelian| | 2020-7-9 15:06 | 只看该作者
楼主辛苦了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

469

帖子

0

粉丝