首先,需要在STM32CubeMX中配置好串口参数,包括波特率、数据位、停止位和奇偶校验位等,并生成代码。 2. 重定向printf函数 为了将printf函数的输出重定向到串口,需要在代码中实现fputc函数,该函数会将每个字符发送到串口。 #include "stdio.h" #include "stm32f1xx_hal.h" extern UART_HandleTypeDef huart1; // ...
我们在使用其他单片机的时候喜欢使用printf函数来输出代码运行日志,或者检查bug;但是stm32不支持printf函数直接使用,所以我们需要重定向串口,使用串口助手来查看printf输出的内容。 2.代码 话不多说上代码,我已经封装好了,大家直接粘贴进自己的工程即可。 usart_printf.h此文件声明了所使用的函数 #ifndef __USART_PRINT...
在STM32使用HAL库时,将printf函数重定向到串口是一个常见的需求,这有助于在调试过程中通过串口监视器输出调试信息。以下是实现这一功能的详细步骤和注意事项: 1. 配置串口 首先,你需要在STM32CubeMX中配置好串口参数,包括波特率、数据位、停止位和奇偶校验位等,并生成代码。这些配置将决定你如何通过串口发送和接收...
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 ...
STM32的HAL库开发系列 - 串口重定向打印函数 那既然有了printf,那么为什么还要自定义打印函数呢?因为当遇到多个串口都需要使用printf时就没有办法了,所以只能自己定义打印函数,让所有串口都能像使用printf函数一样做串口输出。 首先需要包含几个头文件: #include <string.h> ...
//重定向scanf函数到串口 意思就是说接受串口发过来的数据 /*fgetc*/ int fgetc(FILE * F) { HAL_UART_Receive (&huart1,&ch_r,1,0xffff);//接收 return ch_r; } 3.修改main.c 文件 #include "stdio.h"/*添加头文件 */ 在main()函数里添加测试代码:printf("\n===函数Printf函数发送数据===...
STM32的HAL库开发系列 - 串口重定向printf 重定向printf函数实现串口数据发送 重定向需要完成三步: 初始化串口 包含stdio.h头文件 在keil中勾选使用C库 (Use MicroLIB) 重写fputc函数(以串口1为例) #ifdef__GNUC__#definePUTCHAR_PROTOTYPE int __io_putchar(int ch)#else#definePUTCHAR_PROTOTYPE int fputc...
多串口的printf重定向 usart.h文件 对正点原子的源码进行了一点小的改动,首先在usart.h文件中添加了一...
大致介绍 在使用usart2时,使用中断传输进行printf会出现异常。使用阻塞传输无问题。在usart1中无问题。在GD32F407中无问题。直接使用中断传输无问题。 使用代码 正常配置串口,勾选microlib库,重写fputc int fputc(int ch, FILE *f) { whil
在进行printf重定向前,请确保程序中无任何printf语句,避免程序异常运行。在main函数前,需添加以下代码以实现串口重定向功能。在此之前,请务必先对串口进行初始化,否则即使程序稳定运行,printf操作也可能无法得到预期结果。