完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
概述
我们在初学 C 语言的时候,第一句打印就是 printf("hello world") ,后面也经常用来调试打印信息,但是我们在单片机开发的时候 printf 就用不了,因为 printf 会打印在命令行窗口上,但是单片机上肯定没有,所以我们通过改写函数,将 printf 重定向到串口之上,然后通过串口调试助手来显示。 一. 改写函数 新建一个头文件 debug_com.h #ifndef __DEBUG_COM_H #define __DEBUG_COM_H #ifdef __cplusplus extern "C" { #endif #include "stdio.h" #include "usart.h" #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); return ch; } #ifdef __cplusplus } #endif #endif 在使用 printf 的时候,其实最终也是调用 fputc 函数进行打印,因此我们可以通过添加以下代码来达成我们的目的: HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); 注意: huart1 可以根据你使用的串口进行修改 之后将该头文件放到一个文件夹(比如 debug_com )里面,再放到项目目录下 再包含该头文件,如下图所示 之后在项目中使用 #include "debug_com.h" 就可以使用 printf 了 二. printf 使用实例 打印串口1中所用到的寄存器的首地址 //包含头文件 #include "debug_com.h" 1 2 //主函数中添加 while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ printf("huart1.Instance->SR %prn",&huart1.Instance->SR); printf("huart1.Instance->DR %prn",&huart1.Instance->DR); printf("huart1.Instance->BRR %prn",&huart1.Instance->BRR); printf("huart1.Instance->CR1 %prn",&huart1.Instance->CR1); printf("huart1.Instance->CR2 %prn",&huart1.Instance->CR2); printf("huart1.Instance->CR3 %prn",&huart1.Instance->CR3); printf("huart1.Instance->CTPR %prn",&huart1.Instance->GTPR); HAL_Delay(1000); printf("rn"); } 这样,我们就可以在调试助手上看到寄存器的地址值了 后续还会继续分享串口的其他基础知识和使用,感兴趣的小伙伴记得关注我! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:13 , Processed in 0.774642 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号