1.空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发空闲中断的(会触发break中断)。
2.关于第二点有要铺垫的三个情况,datasheet中
"当一空闲帧被检测到时,其处理步骤和接收到普通数据帧一样,但如果IDLEIE位被设置将产生一个中断"
"空闲符号被视为完全由'1'组成的一个完整的数据帧,后面跟着包含了数据的下一帧的开始位'1'的位数也包括了停止位的位数” 空闲符号的配图后面跟这一个低电平.
有人理解为只有收到下一个数据的起始位才会触发中断,这样理解是不对的,应该是数据后有空闲了一帧就会触发.
3.清中断的方式感觉奇怪,使用函数USART_ClearITPendingBit( USART1, USART_IT_IDLE )清除不了中断的.我用的是3.5的库,查看函数说明,里面的@param参数并没有IDLE,后面的@note中,这样说:
"PE(Parity error),FE(Framing error),NE(Noise error),ORE(OverRun error) and IDLE(Idle line detected) pending bits are cleared by software sequence: a read operation to USART_SR register (USART_GetITStatus()) followed by a read operation to USART_DR register (USART_ReceiveData())."
我是通过语句"USART1->DR;"来清除IDLE中断的.
现在有很多数据处理都要用到不定长数据,而单片机串口的RXNE中断一次只能接收一个字节的数据,没有缓冲区,无法接收一帧多个数据,现提供两种利用串口IDLE空闲中断的方式接收一帧数据,方法如下:
方法1:实现思路:采用STM32F103的串口1,并配置成空闲中断IDLE模式且使能DMA接收,并同时设置接收缓冲区和初始化DMA。那么初始化完成之后,当外部给单片机发送数据的时候,假设这帧数据长度是200个字节,那么在单片机接收到一个字节的时候并不会产生串口中断,而是DMA在后台把数据默默地搬运到你指定的缓冲区里面。当整帧数据发送完毕之后串口才会产生一次中断,此时可以利用DMA_GetCurrDataCounter();函数计算出本次的数据接受长度,从而进行数据处理。
应用对象:适用于各种串口相关的通信协议,如:MODBUS,PPI ;还有类似于GPS数据接收解析,串口WIFI的数据接收等,都是很好的应用对象。
方法2:实现思路:直接利用stm32的RXNE和IDLE中断进行接收不定字节数据。
上一篇:STM32内部RAM在线调试配置方法及详细说明
下一篇:STM32学习之IIC
推荐阅读
史海拾趣
近年来,电子行业经历了多次技术变革和产业重组。面对这些变革,CT公司积极调整战略方向,加大在人工智能、物联网等新兴领域的研发投入。同时,公司还推出了一系列创新产品和服务,以满足市场的新需求。这些举措使得CT公司在行业变革中保持了领先地位,实现了持续稳健的发展。
进入21世纪后,随着全球对环保和可持续发展的关注度不断提高,迪贝电子也积极响应这一趋势,将环保和社会责任融入到企业的经营理念中。公司投入大量资金研发更加环保、节能的产品,并积极参与各种环保公益活动。同时,迪贝电子还积极推广绿色制造理念,通过优化生产流程、降低能耗和减少废弃物排放等措施,实现了企业的可持续发展。
自1979年成立以来,E-Switch公司始终将创新作为发展的核心动力。在公司成立初期,面对激烈的市场竞争,E-Switch决定走差异化路线,专注于开发和生产高品质的开关产品。通过不断的技术创新和产品优化,E-Switch逐渐在电子行业中树立了自己的品牌形象。
在技术创新的基础上,Fenfa Electronics Ltd公司开始积极拓展市场。公司高层意识到,仅仅依靠单一市场是远远不够的。因此,Fenfa团队制定了全球市场拓展战略,逐步打开了欧美、亚洲等地区的市场。在拓展过程中,公司积极与当地企业合作,深入了解当地市场需求和消费者习惯,不断优化产品和服务。通过这一系列的市场拓展策略,Fenfa Electronics Ltd公司的品牌知名度和市场份额均得到了显著提升。
随着市场的不断变化和竞争的加剧,BEL并未满足于现状,而是积极寻求多元化发展。公司不仅拓展了原有的军事电子领域,还涉足电信、运算、公共运输和广播等多个行业。同时,BEL还积极拓展全球市场,将产品出口到多个国家和地区,实现了从区域性企业向全球性企业的跨越。
随着市场的扩大和竞争的加剧,Semi-Films Division 意识到品质是品牌的核心。因此,公司加大了对产品质量控制的投入,引入了先进的生产设备和检测手段,确保每一批产品都符合客户的要求。同时,公司还建立了完善的质量管理体系,对生产过程进行全程监控,确保产品质量的稳定性和可靠性。这些努力使得 Semi-Films 的产品在市场上赢得了良好的口碑。
IGBT是一种新型功率器件,即绝缘栅极双极集体管(Isolated GateBipolar Transistor),是上世纪末出现的一种复合全控型电压驱动式电力电子器件。它将GTR和MOSFET的优点集于一身:输入阻抗高,开关频率高,工作电流大等,在变频器、开关电源,弧焊电源 ...… 查看全部问答∨ |
|
本帖最后由 ddllxxrr 于 2016-1-7 17:10 编辑 有的坛友请上图,报价!~介绍具体情况!~ 替同学询问的!~ 自己其实也想买!~ 本站强荐:185娱乐%城.足球%真_人.彩票齐全%手机可投%注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185 ...… 查看全部问答∨ |
如题: TI官网提供了使用Stellaris加上TI cc3000 wifi芯片开发的方案. 下载连接为:http://www.ti.com/tool/cc3000-stellarissw其中Stellaris LM4F 使用WiFi连接方式,既可以作为Web Server服务器端,也可以作为客户端. Web server 服务器支持多个 ...… 查看全部问答∨ |
经常用到各种用电设备的你,是不是总是为各种特殊规格的输出电源而头疼?今天DIYer就教你制作一款整合电源,不仅可以同时输出五路电源,还具有电压调节功能。这么一台神器摆在工作台上,动起手来也事半功倍了! DIYer: 微 ...… 查看全部问答∨ |
CH452按键扩展只要2个IO口实现16个用N5110液晶显示 用CH452驱动4*4矩阵键盘行列行列式+N5110液晶显示 CH452按键扩展只要2个IO口实现16个按键的扩展适合MSP430G2553用N5110液晶显示… 查看全部问答∨ |
rt,想基于AR6103芯片实现WiFi组网,现在在网上找到AR6103的datasheet,但是里面的电路图不清晰,而且不知道怎么画AR6103的PCB封装(LGA),想问问国内有没有卖基于AR6103的wifi模块的,能提供资料的更好啊!… 查看全部问答∨ |