历史上的今天

今天是:2024年10月06日(星期日)

2018年10月06日 | 关于STM32串口空闲中断IDEL的问题

发布者:亚瑟摩根 来源: eefocus关键字:STM32  串口  空闲中断  IDEL 手机看文章 扫描二维码
随时随地手机看文章

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  串口  空闲中断  IDEL 引用地址:关于STM32串口空闲中断IDEL的问题

上一篇:STM32内部RAM在线调试配置方法及详细说明
下一篇:STM32学习之IIC

推荐阅读

首先看看书中是怎样写的,截图如下:里面写到:μC/OS中,中断服务子程序要用汇编语言来写。然而,如果用户使用的C语言编译器支持在线汇编语言的话,用户可以直接将中断服务子程序代码放在C语言的程序文件中。再看《M3权威指南》2.11.2节与9.11节中讲到Cortex-M3在进入异常时自动压栈。。。。返回时自动出栈,再也不需要汇编语言编写了。也就是说我们可以...
翻译自——spectrum,Jeremy Hsu 中文和英文密码的差异对现在流行的Web服务有很大的安全影响。 无论语言和文化有何不同,中、英文互联网用户都能在通过使用“123456”等密码变体时找到共同点。但最近研究发现,从比较两种语言密码模式来看,中文密码具有显著而独特的特点,对中国以外的互联网安全具有重大影响。 令人惊讶的是,由于使用中文用户的密码只...
  工业机器人目前在工业中逐渐适用,工业机器人将代替人工重复性劳动。现实中,更多工厂均采用进口工业机器人,那国产工业机器人与其到底有何差距呢?此外,目前工业机器人又有何应用呢?本文将揭露这些问题的答案。如果你对本文具有兴趣,不妨继续往下阅读哦。   一、国内外工业机器人差距分析   在我国工业机器人市场的需求一直在持续增长,但...
来源:学习军团·解放军新闻传播中心融媒体作者:解放军报记者 韩 成 通讯员 于 晨“机器人技术正在深刻改变着人类的生产和生活方式,中国空间站机械臂也助力我们完成了两次出舱任务。”9月中旬,在北京亦庄开幕的2021世界机器人大会上,神舟十二号飞行乘组3位航天员聂海胜、刘伯明、汤洪波从中国空间站传来“太空点赞”。被表扬的主角,是我国自主研...

史海拾趣

问答坊 | AI 解惑

IGBT驱动电路M57962L的剖析

IGBT是一种新型功率器件,即绝缘栅极双极集体管(Isolated GateBipolar Transistor),是上世纪末出现的一种复合全控型电压驱动式电力电子器件。它将GTR和MOSFET的优点集于一身:输入阻抗高,开关频率高,工作电流大等,在变频器、开关电源,弧焊电源 ...…

查看全部问答∨

POS机一般用哪家的ARM芯片!

RT, 想请教各位达人, POS机一般选用哪家的ARM芯片?…

查看全部问答∨

矩阵键盘GPIO口的配置问题.

想用STM32作个4*4矩阵键盘,通过上拉电阻接到VDD的行GPIO如何配置?作列输出的GPIO口方又如何配置?小问题,麻烦各位了.…

查看全部问答∨

有没人有人转让FPGA的开发板

本帖最后由 ddllxxrr 于 2016-1-7 17:10 编辑 有的坛友请上图,报价!~介绍具体情况!~ 替同学询问的!~ 自己其实也想买!~ 本站强荐:185娱乐%城.足球%真_人.彩票齐全%手机可投%注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185 ...…

查看全部问答∨

使用TI Stellaris做WIFI 无线应用的参考设计

如题: TI官网提供了使用Stellaris加上TI cc3000 wifi芯片开发的方案. 下载连接为:http://www.ti.com/tool/cc3000-stellarissw其中Stellaris LM4F 使用WiFi连接方式,既可以作为Web Server服务器端,也可以作为客户端. Web server 服务器支持多个 ...…

查看全部问答∨

DIY五路独立输出可调电源

经常用到各种用电设备的你,是不是总是为各种特殊规格的输出电源而头疼?今天DIYer就教你制作一款整合电源,不仅可以同时输出五路电源,还具有电压调节功能。这么一台神器摆在工作台上,动起手来也事半功倍了!   DIYer: 微 ...…

查看全部问答∨

CH452按键扩展只要2个IO口实现16个用N5110液晶显示

用CH452驱动4*4矩阵键盘行列行列式+N5110液晶显示 CH452按键扩展只要2个IO口实现16个按键的扩展适合MSP430G2553用N5110液晶显示…

查看全部问答∨

国内有基于AR6103芯片的WiFi模块吗?

rt,想基于AR6103芯片实现WiFi组网,现在在网上找到AR6103的datasheet,但是里面的电路图不清晰,而且不知道怎么画AR6103的PCB封装(LGA),想问问国内有没有卖基于AR6103的wifi模块的,能提供资料的更好啊!…

查看全部问答∨

编码器计数问题

关于光电编码器计数问题,求大神指导!这是我用c51单片机c语言写的程序,但是最终的结果是编码器正转计数一圈400±5个脉冲非常准确,但是反转计数只有100多个脉冲,已经加了去抖程序,但是不知道问题出在哪里了,求大神知道。。。 #include<reg5 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved