完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在程序的调试过程中,除了那些高大上的调试手段外,printf无疑是我们最熟悉最顺手的调试方法。 通过使用printf,我们可以很方便很直观的获取当前程序的运行状态。 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。 但是在单片机开发中,一般情况下并不存在标准输出设备,因此我们需要将printf的输出信息重定向,也就是输出到其他输出设备中去。 在STM32平台上实现重定向的方式有两种,重定向至UART,或者通过JTAG的SW模式将printf重定向至SWO引脚输出。 首先介绍第一种,重定向至UART,这种方式我们比较熟悉,ST官方提供的固件库中也是使用的这种方法。代码如下:在对UART进行初始化后,通过如下代码对printf进行重定向
1.在源码中添加对ITM端口寄存器的定义
2.通过如下代码将printf的输出重定向至ITM的Port 0
3.通过printf输出调试信息
4.将Jtag设置为SW模式,并设置ITM的Port 0 获取信息。 |
|
相关推荐
|
|
hal库中i2c卡死在HAL_I2C_Master_Transmit
1017 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1497 浏览 1 评论
525 浏览 0 评论
1059 浏览 0 评论
1228 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 01:47 , Processed in 0.665026 second(s), Total 66, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号