串口数据接收

今天来讨论一下串口接收该如何去写,我们在嵌入式中需要使用很多其他的外设,大部分信息交流都是使用的串口,数据格式也是丰富多样的。像什么数据帧头帧尾固定的,帧头长度固定,帧头固定等等,除了那些比较极端的像只有帧头固定这种使用空闲中断其他情况便可以使用下面讲述的方法。

通常我们在串口中断接收一字节的数据后便将其存入到数组中,注意的是数组的设定容量一定要大于数据接收的容量,然后我们搭配一个变量flag,flag=0,他的作用是记录当前是第几个字节,然后我们使用if进行判断和比较,用以下格式进行接收即可。帧头确定长度确定、帧头确定帧尾确定满足以上任意条件都可以,只有那些帧头确定然后没有其他任何有效信息情况使用空闲中段。

c 复制代码
flag = 0
REC = X         /* x为串口中断中接收到的数据 */
if(flag == 0)   /* 第一个字节数据 */
{
	if(X == 帧头)
	{
		flag++;  
    }else
    {
        flag = 0;/* 错误数据重新接收 */
    }
}else if(flge ==1 )
{

		/* 类推	*/


}

最后按照公式CRC校验规范进行CRC校验即可。

相关推荐
Zwawa6 小时前
用两个按键做一个OLED菜单:先把选择和执行分开
c语言·单片机·嵌入式
Dev_XH8 小时前
【成品设计】基于CH32H417的CH32H417AIOT家庭微电网
单片机·嵌入式硬件·物联网·ai
国科安芯9 小时前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
国科安芯10 小时前
算力上天之后的电与静:星上边缘计算载荷带外管理网络的低功耗调度与辐射容错
网络·人工智能·嵌入式硬件·安全·边缘计算·低轨卫星·商业航天
t139701813 小时前
MPPT 和 PWM 有什么区别?小功率太阳能供电到底该选哪个
嵌入式硬件·物联网
en.en..14 小时前
STM32入门最佳学习顺序(寄存器→标准库→HAL库)
单片机·嵌入式硬件
Good白101915 小时前
嵌入式:1.嵌入式入门|初识嵌入式、处理器、ARM与STM32
arm开发·stm32·嵌入式硬件
二本咕咕-机械转码15 小时前
FreeRTOS深入解析(八)IPC机制之FromISR详解
数据结构·单片机·链表
小李不想当小白15 小时前
HAL库之UART(STM32 HAL库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Dev_XH16 小时前
【成品设计】基于物联网的旅游生态农业互动系统
stm32·单片机·嵌入式硬件·物联网·旅游