文章概览
cubemx配置
点开异步通信,对应引脚会亮起,RXD
和TXD
打印重定义
在
usart.h
对应位置添加#include<stdio.h>
1
2
3/* USER CODE BEGIN Includes */
/* USER CODE END Includes */在
usart.c
对应位置添加重定义1
2
3
4
5
6
7
8
9/* USER CODE BEGIN 0 */
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
/* USER CODE END 0 */
之后printf()
就是在串口输出
千万别忘了开启
use MicroLIB
没开启这个,串口无反应
接收
HAL库接收函数
1 | // 用户定义 |
串口接收不定长有很多种实现思路,比如DMA或定时器等,一下简单介绍一下定时器方法。
定时器方法
115200 波特率对应 5ms 间隔,最多一次可以传输 20 字节。
思路
从接收到信号开始,一段时间内一直接收,之后关闭,等待下一次接收到新信号。等待时间用定时器精确控制。
代码
其中 REC_LENGTH 一定要设置为 1
多想多做,发篇一作