串口数据接收

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

通常我们在串口中断接收一字节的数据后便将其存入到数组中,注意的是数组的设定容量一定要大于数据接收的容量,然后我们搭配一个变量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校验即可。

相关推荐
ShallWeL5 小时前
Orin 上多模型常驻与显存预算
人工智能·嵌入式硬件·nvidia·orin
亮工硬件5 小时前
1-11 STM32内部FLASH(数据掉电保存)
笔记·stm32·单片机·嵌入式硬件·学习
集和诚JHCTECH5 小时前
案例分享 | BRAV-7721助力印刷电路板(PCB)智能缺陷复判系统
人工智能·嵌入式硬件·边缘计算
恒锐丰科技林技术员6 小时前
EG27524 双通道栅极驱动芯片:高速功率变换系统的驱动利器
经验分享·嵌入式硬件·硬件工程
恒锐丰科技林技术员8 小时前
EG2003:200V 半桥 MOS/IGBT 栅极驱动芯片解析
经验分享·嵌入式硬件·硬件工程
LCG元8 小时前
STM32 硬件SPI驱动W25Q Flash实战:从CubeMX配置到DMA高速读写
stm32·单片机·嵌入式硬件
HRTOS8 小时前
HRTOS应用示例:信号量机制详解
c语言·人工智能·嵌入式硬件·51单片机
从零开始的嵌入式之旅9 小时前
day36
linux·c语言·经验分享·笔记·嵌入式硬件
HRTOS9 小时前
HRTOS应用示例:Mutex互斥锁机制详解
c语言·单片机·嵌入式硬件·51单片机
铅笔小新z9 小时前
【stm32】I2C 阻塞通信实战与 HAL 源码
stm32·单片机·嵌入式硬件