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

个人网站模板素材下载做幼儿英语的教案网站

个人网站模板素材下载,做幼儿英语的教案网站,建设局考试通知文件网站,wordpress免费主题简约title: HAL-DMA中断空闲接受不定长数据 tags: STM32HalCubemax 面对无规律长度的数据帧如何处理#xff1f; 不定长数据接收可以使用每帧数据发送完成后会有一定的空闲时间帧的时间间隔? 如果你想每帧都要可以采用dma加空闲中断的方式空闲中断一次就是一帧数据… title: HAL-DMA中断空闲接受不定长数据 tags: STM32HalCubemax 面对无规律长度的数据帧如何处理 不定长数据接收可以使用每帧数据发送完成后会有一定的空闲时间帧的时间间隔? 如果你想每帧都要可以采用dma加空闲中断的方式空闲中断一次就是一帧数据接受完成再去做其它数据解析和其他业务出来不过需要我们注意的是这里面有个小坑 __HAL_UART_CLEAR_IDLEFLAG(huart1); 我先说下如何处理 if (__HAL_UART_GET_FLAG(huart1,UART_FLAG_IDLE) SET) {uint16_t temp 0;__HAL_UART_CLEAR_IDLEFLAG(huart1);HAL_UART_DMAStop(huart1);temp huart1.Instance-SR;temp huart1.Instance-DR;temp hdma_usart1_rx.Instance-CNDTR;Usart1type.UsartDMARecLen   USART1_DMA_REC_SIE - temp;HAL_UART_RxCpltCallback(huart1); }这个函数网上说什么有bug还是啥 temp huart1.Instance-SR;  temp huart1.Instance-DR; 还要读一下这两寄存器 原理很简单就是打开空闲中断函数 触发中断后dma接收 接收完后搬到接收数组里面清除dma数组 做业务逻辑处理 处理完就全部数组清除 操作步骤如下 1.开启中断函数 void EnableUsart_IT(void){__HAL_UART_ENABLE_IT(huart1,UART_IT_RXNE);__HAL_UART_ENABLE_IT(huart1,UART_IT_IDLE);__HAL_UART_CLEAR_IDLEFLAG(huart1);HAL_UART_Receive_DMA(huart1,Usart1type.Usart1DMARecBuffer,USART1_DMA_REC_SIE);}2.触发中断后dma接收 void USART1_IRQHandler(void) {/* USER CODE BEGIN USART1_IRQn 0 */if (__HAL_UART_GET_FLAG(huart1,UART_FLAG_IDLE) SET){uint16_t temp 0;__HAL_UART_CLEAR_IDLEFLAG(huart1);HAL_UART_DMAStop(huart1);temp huart1.Instance-SR;temp huart1.Instance-DR;temp hdma_usart1_rx.Instance-CNDTR;Usart1type.UsartDMARecLen USART1_DMA_REC_SIE - temp;HAL_UART_RxCpltCallback(huart1);}/* USER CODE END USART1_IRQn 0 */HAL_UART_IRQHandler(huart1);/* USER CODE BEGIN USART1_IRQn 1 */HAL_UART_Receive_DMA(huart1,Usart1type.Usart1DMARecBuffer,USART1_DMA_REC_SIE); //再次打开DMA接收/* USER CODE END USART1_IRQn 1 */}3.接收完后搬到接收数组里面清除dma数组 /* USER CODE BEGIN 1 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){if (huart-InstanceUSART1){memcpy(Usart1type.Usart1RecBuffer[Usart1type.UsartRecLen],Usart1type.Usart1DMARecBuffer,Usart1type.UsartDMARecLen);Usart1type.UsartRecLenUsart1type.UsartDMARecLen;memset(Usart1type.Usart1DMARecBuffer,0x00,sizeof(Usart1type.Usart1DMARecBuffer));Usart1type.UsartRecFlag1;}} 4.业务逻辑处理 我就简单的串口打印测试 /* Infinite loop *//* USER CODE BEGIN WHILE */while (1){if (Usart1type.UsartRecFlag1 ){​ printf(re:%s,len%d\r\n,Usart1type.Usart1RecBuffer,Usart1type.UsartDMARecLen);​ memset(Usart1type.Usart1RecBuffer,0x00,sizeof(Usart1type.Usart1RecBuffer));​ Usart1type.UsartRecFlag0;​ Usart1type.UsartRecLen0;}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */} 参考代码就一积分 给我点 串口空闲中断cubemax任意长度数据资源-CSDN文库
http://www.w-s-a.com/news/700545/

相关文章:

  • .net 建网站网站网站做员工犯法吗
  • 电子商务网站建设说课稿棕色网站设计
  • 怎么做律所的官方网站红塔网站制作
  • 装一网装修平台官网惠州seo按天付费
  • 湖南建设监理报名网站东莞模块网站建设方案
  • 网站建设小组个人主页html源码
  • 响应式网站检测工具营销公司业务范围
  • 网站源码如何安装做游戏课程网站
  • 选服务好的网站建设亚洲砖码砖专区2022
  • 网站快速查找wordpress 悬停 图片 文字
  • 网站续费 多久想自己做网站该学些什么
  • 可以自己做网站wordpress英文写作插件
  • 国外可以做会员网站的网站怎么查百度竞价关键词价格
  • 新站网站建设亚马逊关键词
  • 电商网站前端架构设计上海市建设工程安全生产协会网站
  • 东莞企业免费模版网站建设一般网站维护要多久
  • 著名建筑设计网站常州制作网站价格
  • 食品营销型网站广东省广州市白云区
  • 如何做网站哪个站推广描述对于营销型网站建设很重要飘红效果更佳
  • 济阳做网站公司99企业邮箱888
  • 国贸做网站的公司能接做网站的活的网站
  • 淮南建设厅网站上杭县建设局网站
  • 东莞做网站公司首选!西安注册公司费用
  • 做网站包括什么卖水果网站模板
  • 扬州网站建设外包wordpress 文章评分
  • 网站建设网站多少钱公司名字大全列表
  • 设计企业网站内容wordpress 投稿者 权限
  • seo网站推广免费价格低的成语
  • 做网站建设销售辛苦吗专题页是什么
  • 做网站的软件名字全拼wordpress可以上传文件吗