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

购物优惠券网站怎么做企业网站对网络营销的意义

购物优惠券网站怎么做,企业网站对网络营销的意义,怎么看网站建设有多久,微信公众号小说网站怎么做一、简介 本文主要介绍STM32如何配合USART的IDLE中断实现USART DMA接收不定长的数据。其中使用的接收缓存还是延用前面博客写的乒乓缓存。使用DMA USART接收来替代中断方式或轮询方式的接收主要是为了提高代码的运行效率#xff0c;中断方式的接收#xff0c;每接收一个字节便…一、简介 本文主要介绍STM32如何配合USART的IDLE中断实现USART DMA接收不定长的数据。其中使用的接收缓存还是延用前面博客写的乒乓缓存。使用DMA USART接收来替代中断方式或轮询方式的接收主要是为了提高代码的运行效率中断方式的接收每接收一个字节便会产生一个中断当串口有大量数据需要接收时会造成CPU不停的被中断打断频繁的出入栈造成整个系统不稳定的情况且也会影响到主任务里其它流程的执行时序造成主任务里的流程滞后现象影响其它事情的实时性。引进DMA的接收正是为了解决该问题。 二、设计思路 USART 使用DMA方式接收需要考虑到从USART传输进来的数据可能会出现不定长等现象在通信协议上该问题属于正常现象。但DMA的传输又需要指定特定长度因此在配置DMA时我们很难得知要配置多少接收长度接收长度配置多了DMA不会产生传输完成标志配置少了又可能造成频繁触发DMA现象导致数据不好处理出现要拼包等现象。因此这里使用STM32的特性空闲中断来判断一次DMA的传输完成。空闲是指在串口接收到一帧数据后没有再接收到数据此时会产生一个空闲帧此时会置位IDLE位如若配置置IDLEIE位则会进入中断。注首次配置USART初始化开启TE位的时候也会产生空闲帧需要滤掉。 二、配置流程 1) USART 使能IDLEIE位 使能USART1的空闲中断 USART1-CR1 | 1 4; // enable IDLE interrupt 2 USART 配置DMA接收初始化 DMA_USART1_Receive_Config(DMA1_Channel5, (u32)USART1-DR);void DMA_USART1_Receive_Config(DMA_Channel_TypeDef* DMA_CHx, u32 cpar) {DMA_CHx-CPAR cpar; //cfg periph addr DMA_CHx-CCR | 3 12; //cfg channel prio 3DMA_CHx-CCR ~(1 4); //cfg periph to memDMA_CHx-CCR ~(1 5); //cfg dma single transferDMA_CHx-CCR | 1 7; //cfg mem transfer addr inc } 3使能USART DMA接收 DMA_UART1_RECEIVE_ENABLE(DMA1_Channel5, (u32)p_cur_Usart1_Handle, 256);void DMA_UART1_RECEIVE_ENABLE(DMA_Channel_TypeDef* DMA_CHx, u32 cmar, u16 cndtr) {USART1-CR3 | 1 6; //enable uart dma rxDMA_CHx-CCR ~(1 0); //dma channel disableDMA_CHx-CMAR (u32)cmar; //cfg mem addrDMA_CHx-CNDTR cndtr; //cfg transfer lendma_cfg_recieve_cnt DMA_CHx-CNDTR;DMA_CHx-CCR | 1; //dma channel en } 4USART IDLE中断处理 在void USART1_IRQHandler(void)中断函数里通过获取DR寄存器清IDLE位。并置位recieve_idle 通知处理数据帧。 if (USART1-SR (1 4)){u8 temp;temp USART1-DR;recieve_idle 1;} 5IDLE 的处理 主循环轮询产生IDLE的话表示当前收到一帧完整数据帧则需要处理处理流程关DMA USART接收-获取DMA 传输数据量-切换接收缓存即取发送缓存-使能DMA USART接收。 void idle_process(void) {if (recieve_idle){recieve_idle 0;DMA_UART1_RECEIVE_DISABLE(DMA1_Channel5);p_cur_Usart1_Handle-len GET_DMA_TRANSFER_CNT(DMA1_Channel5);change_curFifo();DMA_UART1_RECEIVE_ENABLE(DMA1_Channel5, (u32)p_cur_Usart1_Handle, 256);} } 6USART DMA发送 该内容参考上一篇博客STM32 寄存器配置笔记——USART DMA发送 具体代码如下
http://www.hkea.cn/news/14547618/

相关文章:

  • 有什么网站做交流会wordpress外链图床插件
  • 网上申报办税系统seo教程视频
  • 沈阳火车站wordpress管理员破解
  • 网站备案好后wordpress安装完不显示不出来
  • 一个刚有官网的公司怎么做网站运营婚庆网站怎么设计模板
  • 网站被k文章修改中信建设有限责任公司地址
  • 网站建设产品说明书深圳市网站建设做网站
  • 附近做网站上海网页制作系统
  • 深圳网站制作公司哪家好网站怎么seo
  • 四川平台网站建设设计专业做书画推广的网站
  • 网站外包价格布拖网站建设
  • 网站维护中页面代码wordpress图片上传压缩
  • 购买域名搭建网站在线网站seo诊断
  • 模板建站哪家好天河建设网站技术
  • 厦门建设局网站网站建设与维护心得体会
  • 网页设计实训总结万能版宁波网站运营优化系统
  • 手表网网站wordpress不适合做大站
  • 网站seo优化是什么意思企业建站公司服务
  • 网站中的表格江苏城嘉建设工程有限公司网站
  • 电子工程师网站阿克苏网站建设一条龙服务
  • 免费建网站 高校社团官方网站沧州好的做网站的公司
  • 什么网站专做店铺商业网站设计欣赏
  • 百度网盘搜索引擎网站ppt下载免费网站
  • 厦门哪里做网站网站如何调用数据库
  • 太原网站建设小程序seo薪酬
  • 爱站网的关键词是怎么来的kratos的WordPress
  • 利用google地图标注做网站公司建站花费
  • 东莞建站模板大全宁波专业品牌网站制作外包
  • 阿里巴巴电子商务网站建设目的手机创建网站
  • 罗定城乡建设规划局网站排名优化上首页怎么做