STM32cubeIDE串口uart打印

STM32cubeIDE进行Uart打印

注意:

注意不能打印浮点数,因为uart的传递的数据就是int类型,但是如果把printf重定向到ide,可以使能printf打印浮点数
注意1: stm32cubeide没有usart的库函数了,由于usart逐渐被淘汰,stm32的HAL库只留下了uart的库 注意2: stm32cubeide移植printf函数与keil移植printf函数不同的是,keil可以勾选lib库,由于stm32cubeide问世不久教程很少,并不能有效的重定向printf函数,可能是我的编译器配置有问题 解决办法 用HAL_UART_Transmit函数代替printf,并且减少了每次移植printf找代码的麻烦,只不过每次串口打印时,麻烦那么一点点 //注意使用阻塞式串口打印,也就是使用不带中断的串口打印 例子:在上位机打印"你好 word" HAL_UART_Transmit(&huart1,(uint8_t*)“你好 world”,sizeof(“你好 world”), 0xffff); //注意工程用GBK编码才能打印中文

结果验证

2020-6-16后续

重定向printf的代码

```c
#include "stdio.h"

#ifdef __GNUC__

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

PUTCHAR_PROTOTYPE
{
          
   

 HAL_UART_Transmit(&huart1,(uint8_t*)&ch, 1, HAL_MAX_DELAY);

 return ch;
}
#endif
经验分享 程序员 微信小程序 职场和发展