STM32的HAL库开发系列 - 串口重定向printf

简介: STM32的HAL库开发系列 - 串口重定向printf

STM32的HAL库开发系列 - 串口重定向printf

重定向printf函数实现串口数据发送

重定向需要完成三步:

初始化串口

包含stdio.h头文件

在keil中勾选使用C库 (Use MicroLIB)

重写fputc函数(以串口1为例)

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif 
PUTCHAR_PROTOTYPE
{
    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}

测试一下

printf("Hello, I am %s\r\n", "iii");        // printf输出字符串
printf("Test int:   i = %d\r\n", 100);        // printf输出int型数据
printf("Test float: i = %f\r\n", 1.234);    // printf输出float型数据
printf("Test hex:   i = 0x%2x\r\n",100);    // printf输出16进制数据
printf("Test all:   i = %d j = %f k = 0x%2x",100,1.234,100);// 同时输出所有数据类型
目录
相关文章
|
6月前
|
传感器 数据采集 算法
基于STM32 上开发的BMS系统
基于STM32 上开发的BMS系统
495 14
【寄存器开发速成】半小时入门STM32寄存器开发(二)
【寄存器开发速成】半小时入门STM32寄存器开发(二)
254 0
|
芯片
【寄存器开发速成】半小时入门STM32寄存器开发(一)
【寄存器开发速成】半小时入门STM32寄存器开发(一)
505 0
STM32CubeMX 串口收发一帧数据
STM32CubeMX 串口收发一帧数据
253 9
|
芯片
STM32CubeMX 串口数据收发
STM32CubeMX 串口数据收发
497 2
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
1483 2
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
1796 0
|
缓存 网络协议 算法
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)

热门文章

最新文章