美文网首页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