STM32串口接收数据处理方法

STM32串口接收定长数据处理方法

STM32串口接收定长数据的处理方法非常简单,我目前做项目都是用的这个,也可用做处理MODBUS协议,直接上代码。

void USART1_IRQHandler(void)                 //串口1中断服务程序
{u8 Res;if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断{USART_ClearITPendingBit(USART1,USART_IT_RXNE);     //清中断Res =USART_ReceiveData(USART1); //读取接收到的数据switch(USARTReceIn){case 0:if((Res==SW_ID)||(Res==255))USARTReceBuff[USARTReceIn++] = Res;elseUSARTReceIn = 0;break;default:USARTReceBuff[USARTReceIn++] = Res;break;}if(USARTReceIn >= 8){USARTReceFullFlag = 1;  }}
}

执行逻辑解释

首先定义一个全局变量接收完成标志位USARTReceFullFlag,假如我需要接收数据长度是8,那么在串口中断接收到数据长度>=8时,就让这个标志位置1,也可在串口中断函数中判断接收到的数据头。
然后在其他地方执行时,直接判断标志位,进行处理相关内容,注意:需要把标志位和接收序列清零。

if(USARTReceFullFlag)
{if((USARTReceBuff[2] == 0x01)&&(USARTReceBuff[6] == 0xcc)&&(USARTReceBuff[7] == 0xdd)){Play_Choice_voice(0x01);}USARTReceFullFlag = 0;USARTReceIn = 0;
}

STM32串口接收数据处理方法相关推荐

  1. STM32串口接收不定长数据原理与源程序

    **STM32串口接收不定长数据原理与源程序**CSDN上有很多关于STM32串口接收不定长数据的文章,但实际使用后发现照搬他们的代码,程序根本就不能正确接收数据,其中最关键的一句有问题.其余内容完全 ...

  2. STM32串口接收数据

    参考串口接收中断处理函数: //------------------------------------------------------------------ //函数名:void USART1 ...

  3. stm32串口接收不定长数据_基于STM32之UART串口通信协议--接收

    一.前言 1.简介 回顾上一篇UART发送当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作. 2.UART简介 嵌入式开发中,UART串口通信协议是我们 ...

  4. 关于stm32串口接收发送数据不完整的相关问题

    如果串口接收数据,数据传输的比较快,这个时候还要使用同一个串口发送数据. 如果是在主函数中使用HAL_UART_Receive();,这个时候不管使用HAL_UART_Transmit();还是使用H ...

  5. stm32串口接收不到数据的一些问题

    菜鸟写的经验,大佬勿喷!! 最近在搞stm32的接收通信,用的正点原子的例程,打算用串口2进行通信,然后发现各种各样的的问题.比如只能收到一个字符,只能收到首个和末尾两个字符,收到字符时死机-等等一堆 ...

  6. STM32 串口接收流程-串口接收中断

    串口接收 串口接收流程 编程USARTx_CR1的M位来定义字长. 编程USARTx_CR2的STOP位来定义停止位位数. 编程USARTx_BRR寄存器确定波特率. 使能USARTx_CR1的UE位 ...

  7. STM32串口接收粉尘传感器数据

    本文章主要记录STM32实现对粉尘传感器的数据采集及简单处理. 材料: 1.正点原子Mini开发板STM32f103RC 2.ZH03A激光粉尘传感器 3.USB TO TTL线(就是烧写51单片机的 ...

  8. 单片机串口接收的几种常用的数据处理方法

    单片机串口接收的几种常用的数据处理方法 一.为什么串口接收的数据需要处理 我们在做项目的时候经常会用到串口,当我们用串口和别的设备通讯的时候就需要严格遵循通讯协议,然而,仅仅是遵循通讯协议是不够的,因 ...

  9. 【嵌入式系统】STM32串口通信的四种方法(基于RTOS)

    目录 1.串行通信的基本参数 2.轮询方式代码效果 3.中断方式代码效果 4.中断加上时间戳方式代码及效果 5.DMA空闲中断方式接收数据 1.串行通信的基本参数 串行端口的通信方式是将字节拆分成一个 ...

最新文章

  1. Java高级工程师学习路径
  2. arthas类和类加载器相关命令:dump、classloader
  3. Git环境搭建与基本使用方法 (转自http://blog.csdn.net/fireelement/article/details/9618363)
  4. 英文版Ubuntu 16.04系统如何解决gedit中文显示乱码的问题
  5. 7-8 哈利·波特的考试 (25 分)(详解+思路分析)真香啊
  6. 量化策略回测DCCV2
  7. 小小的 Python 编程故事
  8. 趣味集算:八皇后问题
  9. task文件服务器无法反弹,手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...
  10. 有一个测试微信删除软件叫wool,如果出现这三种情况,便可以删除这些微信好友,此操作适用所有人...
  11. iOS开发-Masonry约束宽高比
  12. Matlab中zeros和ones函数用法
  13. 99乘法表图片java_【Java案例】九九乘法表
  14. php格林威治时间,时间戳与格林威治时间互相转换
  15. 【自动化】手把手教你一个1秒钟归纳整理海量文件的python小技巧
  16. Docker测试环境笔记
  17. java.sql.SQLException: Access denied for user 'pc'@'localhost' (using passw
  18. 来自灵魂的拷问——知道什么是SQL执行计划吗?
  19. PS调色精灵ps插件
  20. ldconfig命令简介

热门文章

  1. SQLServer查询每年/每月/每日最新一条数据
  2. 面向对象思想设计简单动物乐园Java程序
  3. 什么时候会出现user_objects的invalid_2021年的桃花运什么时候会出现
  4. 【python】代码实现计算天数倒计时
  5. Mambo V4.6 正式发布了!
  6. @所有中小企业,腾讯安全免费开放基础安全能力,助力构建数字安全免疫力!
  7. 资产残值:折旧码残值率*原值和折旧码固定残值
  8. 楚留香卡在服务器信息,楚留香互通区是哪个(最全区服表让你一目了然)
  9. windows10下使用nginx -s reload重启nginx失败
  10. 引用在线jquery库