当前位置: 首页 > news >正文

串口接收,不定长数据接收

###1.CUBE-MX配置串口
在这里插入图片描述
2.我采用串口中断接收,打开中断接口
在这里插入图片描述
3.时钟同样8倍频,1分频,使用内部时钟
在这里插入图片描述

打开串口中断
main()
{
__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); // 启用空闲中断__HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE); // 启用接收数据就绪中断HAL_UART_Receive_IT(&huart1,RxData,1); // 启动接收while(1){HAL_UART_Transmit(&huart1,(uint8_t *)&crc,2,HAL_MAX_DELAY);//发送函数,第一个参数串口的句柄huart1,第二个参数发送的内容crc,这个地方自己修改:HAL_MAX_DELAY这个参数表示无限等待下去,直到发送成功为止}}

主函数写完了,现在进行对中断函数处理,这里进行一个字符一个字符的接收

void USART1_IRQHandler(void)
{/* USER CODE BEGIN USART1_IRQn 0 *//* USER CODE END USART1_IRQn 0 */HAL_UART_IRQHandler(&huart1);/* USER CODE BEGIN USART1_IRQn 1 */// 检查接收数据就绪标志if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE) != RESET) {//从USART接收一个字节,并存储到RxData数组RxData[temp++] = USART1->DR;}else if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_IDLE) != RESET){// 检查空闲标志uint32_t temp1;temp1 = huart1.Instance->SR; // 读取 SR 寄存器temp1 = huart1.Instance->DR; // 读取 DR 寄存器Counter_RSUSART =temp;// 重置计数器,准备接收下一帧数据temp = 0;}HAL_UART_IRQHandler(&huart1);//重新打开中断/* USER CODE END USART1_IRQn 1 */
}

参考这个博主

https://blog.csdn.net/qq_25814297/article/details/123082048
https://www.eeworld.com.cn/mcu/eic669733.html

上述说的是收到一个字节的数据时RXNE变为1,一直到IDLE变为1的时候证明这一包数据接收完毕了,要读掉这两个变量,下次才能继续。

原理就是一个字节一个自己的接收,直到IDLE变为1,我进行清除。再进行接收


http://www.mrgr.cn/news/64673.html

相关文章:

  • 完全背包(动态规划):DFS->记忆化搜索->倒序动态规划->循序动态规划->二维->一维
  • 【spark的集群模式搭建】spark集群之Yarn集群模式搭建(清晰明了的搭建流程)
  • 从 vue 源码看问题 — 如何理解 vue 响应式?
  • 软考:案例题分析1101
  • docker-compose安装rabbitmq 并开启延迟队列和管理面板插件(rabbitmq_delayed_message_exchange)
  • Centos8安装软件失败更换镜像源
  • 00 递推和递归的核心讲解
  • LeetCode27:移除元素
  • JavaEE进阶---第一个SprintBoot项目创建过程我的感受
  • 1.kubernetes作用及组件
  • (五)PostgreSQL数据库操作示例
  • 如何使用Python WebDriver爬取ChatGPT内容(完整教程)
  • 我为何要用wordpress搭建一个自己的独立博客
  • Linux基础 文件与目录
  • int a[5]里面的 a表示a[0], a执行包含5个整数的数组的指针
  • OTFS的基本原理(通俗易懂)
  • 如何建购物网站提升用户体验
  • Goland2024 最新激活码
  • 大语言模型代码生成能力排行榜(2024年9月)
  • 海的记忆:海滨学院班级回忆录项目
  • 【综合算法学习】(第十五篇)
  • ComsolMatlab 基于准亥姆霍兹共振的可调谐水声超材料:从低频到超宽带
  • TOEIC 词汇专题:娱乐休闲篇
  • 【Python+Pycharm】2024-Python安装配置教程
  • 【Clickhouse 探秘】你知道 ClickHouse ReplacingMergeTree 引擎吗?
  • 新西兰电商市场:潜力无限,逆向代购正当时