美文网首页STM32
STM32的ITM跟踪调试功能介绍及实现(五)USB调试实例

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

作者: 海东青电子 | 来源:发表于2019-01-29 23:26 被阅读0次

之前调试USB设备程序时,使用的是通过串口来打印变量,实际测试时,因为串口速率问题,串口会丢包;如果迁就串口慢速输出,则可能影响到USB的实时通讯,造成USB设备识别失败。有了ITM,USB实时调试的问题可以解决了!

为了生成一个USB设备应用,之前测试使用的NUCLEO-F411RE板子不再适用了,这次换了一个支持USB应用的板子:NUCLEO-F412ZG:

图一

使用STM32CUBEMX针对F412ZG板子生成一个KEIL版本的、支持USB设备的最基本的例程(模拟USB鼠标),将上一讲中的retarget.c文件添加进来。在文件 stm32f4xx_it.c 中找到中断处理入口函数 OTG_FS_IRQHandler(),添加一个打印变量的语句:

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

图二

编译、下载、进入debug、全速运行,看到printf输出数据如下:

图三

板子通过USB连入PC后,可以看到USB设备枚举过程中,USB中断被进入了82次(这个数值每次测试可能有轻微变化);用类似方法可以打印USB通讯过程中的双向数据,便于理解USB通讯原理或排错。

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

(全文完)

相关文章

网友评论

    本文标题:STM32的ITM跟踪调试功能介绍及实现(五)USB调试实例

    本文链接:https://www.haomeiwen.com/subject/dpwfsqtx.html