完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在调试代码的时候,最常用的就是使用printf函数来输出一些打印信息,提示自己代码的执行情况。
如果你的UART串口不够用,还要用printf,此时该怎么办? 方法其实是有的,那就是:使用SWO/SWV。 SWO:Serial Wire Output,串行线输出 SWD:Serial Wire Viewer,串行线查看器 一、常见printf输出 1.UART打印 这种使用UART串口输出,需要占用一个硬件串口。 2.Keil MDK-ARM Viewer输出 3.IAR EWARM终端输出 4.ST-LINK Utility SWV输出 这后面三种不占用硬件UART,使用ITM机制。 二、UART映射printf 这种方法应该很多人都知道,就是使用硬件UART串口映射,实现printf打印输出。 对于Keil、 IAR,只需要添加如下代码,就可以使用printf函数: #include "stdio.h" int fputc(int ch, FILE *f) { HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); return ch; } 意思就是将UART输出(串口输出一个字符)进行映射。 三、Keil MDK-ARM Viewer输出 针对2、3、4输出: 添加代码: #include "stdio.h" int fputc(int ch, FILE *f) { ITM_SendChar(ch); return ch; } 在Keil的Options中设置: 提示:Core Clock内核时钟要和你实际时钟对应。 四、IAR EWARM终端输出 1.Oprtins设置: 2.SWO配置 五、ST-LINK Utility SWV输出 工具在线查看输出信息,需要上面配置代码,通过ST-Link链接即可。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1786 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1622 浏览 1 评论
1089 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
730 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1680 浏览 2 评论
1942浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
739浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
576浏览 3评论
598浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
560浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 17:23 , Processed in 0.868084 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号