完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
printf重定义在嵌入式中是一个比较常见的问题,而新手在调试程序时有时候很容易忘记对printf进行重定义从而导致程序运行不下去,不熟悉的根本找不到为什么会出现这中情况,通过一段时间的学习自己整理了一个比较好的printf重定义方法:
步骤如下: 1. 在主程序中加入 #include “stdio.h” // 这是标准C中包含printf的头文件,当然有时在一个完整的工程中可以不需要再加入了 因为有些工程中本身已经包含了这个头文件了 不过本人觉得为了程序以后的移植性好一点还是建议再加一遍。 2.在main.c 文件中加入一下代码: void uart_put(u8 dat) { while(USART_GetFlagStatus(USART1,USART_FLAG_TC) == RESET); USART_SendData(USART1,dat); } int fputc(int ch, FILE *f) { uart_put((u8)ch); return ch; } int fgetc(FILE *f) { /* Loop until received a char */ while(!(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET)); /* Read a character from the USART and RETURN */ return (USART_ReceiveData(USART1)); } 3.把编译器 USE MicroLIB 勾选 如下图 至此我们的printf就已经重定义好了,在此工程中我们就可以很方便的使用printf输出,进行串口PC调试了。 本人第一次写博客,有什么错误的地方敬请拍砖,以达共同进步! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
732浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
557浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 07:37 , Processed in 0.771343 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号