STM32配置HAL库支持printf
1.在STM32CubeMX中配置串口如下图所示:
2.在头文件中定义宏
首先USART.H文件中引入:
#include <stdio.h>
然后在USART.H件添加如下代码:
/* 宏定义缓冲区大小 */
#define USART1_BUFF_SIZE 256
/* 声明冲区数组 */
extern uint8_t USART1_BUFF[USART1_BUFF_SIZE];
extern uint8_t USART1_BUFF[USART1_BUFF_SIZE];
/* 重定向printf */
#define printf(...) HAL_UART_Transmit(&huart1,\
(uint8_t *)u_buf,\
sprintf((char*)u_buf,__VA_ARGS__),\
0XFFFF)
3.在USART.C文件定义缓冲区数组
打开USART.C中定义全局数组
/* 定义串口发送缓冲区数组 */
uint8_t USART1_BUFF[USART1_BUFF_SIZE];
4.测试printf是否生效
在main函数中添加测试代码
printf("Hello World!\r\n")
HAL_Delay(1000);
编译后烧录观察串口助手是否收到
串口助手收到数据即大功告成!
版权声明:本文为weixin_49048250原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。