004.串口发送数据
- 设计目标
A.功能
①STM32通过串口向上位机发送“hello”;
②STM32通过串口向上位机发送数值(int a=123456);
B.电路分析
C.逻辑关系
串口要发送数据,则需使用HAL_UART_Transmit函数。
- CUBE的配置
- 典型代码
A.fputc重定向
#include "stdio.h"
#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;}
————————————放到main之外————————————
B.main函数
printf("hello, ");
int a=123456;
printf("%d\n",a);
Printf的输出格式:%d为int型;%f为double型;%e为科学计数法型;%c为char型;%s为字符串型;%p为指针型。
- 小结
A.如只使用HAL_UART_Transmit(&huart1,待发送字符串,长度,0xFFFF);则只能发送字符串,不能发送数值,考虑到各种传感器获取的数据均为数值型,故必须重定向printf。
B.另外,要使用"stdio.h",需要将project/options for target/use microlib选中。