串口数据接收

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

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

相关推荐
d111111111d2 小时前
在STM32函数指针是什么,怎么使用还有典型应用场景。
笔记·stm32·单片机·嵌入式硬件·学习·算法
♛识尔如昼♛4 小时前
计算机组成原理(21) 第五章 - 总线性能指标
单片机·嵌入式硬件
快乐的划水a4 小时前
windows用户态到内核态
stm32·单片机·嵌入式硬件
Hy行者勇哥4 小时前
从零搭建小智 AI 音箱 MCP 开发环境:自定义智能家居控制技能实战指南
人工智能·嵌入式硬件·硬件工程·智能家居
richxu202510016 小时前
嵌入式学习之路>单片机核心原理篇>(11) 存储器(Flash & SRam)
单片机·嵌入式硬件·学习
@good_good_study6 小时前
STM32 TIM编码器模式配置函数及实验
stm32·单片机
云山工作室8 小时前
基于单片机的客车载客状况自动检测系统设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计
Rorsion8 小时前
第二章(2.5):微控制器8051的硬件结构---时钟、复位和MCU工作方式
单片机·嵌入式硬件·备考ing
Qingniu018 小时前
SP40P65NJ:一款高性能40V P沟道MOSFET深度解析
单片机·嵌入式硬件·电机驱动·dc-dc降压/升压转换器·电源管理模块
brave and determined9 小时前
传感器学习(day10):MEMS传感器:揭秘智能时代的核心技术
嵌入式硬件·汽车电子·传感器·mems·消费电子·嵌入式设计·传感器应用