原理图
Cubemx配置
代码
主函数
//开启中断
HAL_UART_Receive_IT(&huart1,&rx,1);
串口发送
#include“string.h”
char temp[30];
sprintf(temp,"frq=%d\r\n",frq1);
HAL_UART_Transmit(&huart1,(uint8_t *)temp,strlen(temp),50);
串口接收
char rxdata[30];
uchar rx;
uchar rx_poinder;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
rxdata[rx_poinder++]=rx;
HAL_UART_Receive_IT(&huart1,&rx,1);
}
接收处理函数
char car_type[5];
char car_flag[5];
char car_time[13];
sscanf(rxdata,"%4s:%4s:%12s",car_type,car_flag,car_time);
//将数组rxdata按照4 4 12分割成三部分分别存放
//CNBR:A392:200202120000 按照冒号分割
//CNBR
//A392
//200202120000
//分别存放在对应数组里面
清空函数
memset(rxdat,0,30)// 数组 0 长度
串口接收问题
如果需要接受n个字符,则rx数组的长度需要设置为n+1,不然容易出问题