*****重要*******转载请注明出处***********

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 串口2空闲中断死机_关于STM32串口空闲中断IDEL的问题相关推荐

  1. stm32 串口2空闲中断死机_STM32串口之空闲中断

    NBiot模块一般都是串口接口,使用AT指令集,对接中国移动onenet平台.先用串口助手去测试,流程测试OK之后需要在MCU上重新写一遍. STM32串口IDLE中断 IDLE其实是空闲的意思.ID ...

  2. stm32 串口2空闲中断死机_STM32串口空闲中断问题

    1.空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发空闲中断的(会触发bre ...

  3. STM32 BOOT0连接不当造成死机

    一下内容转自:http://www.360doc.com/content/14/0326/10/6624919_363817465.shtml STM32的三种启动方式依靠BOOT0和BOOT1两个引 ...

  4. 在实现反射内存卡驱动程序DMA完成中断死机蓝屏纠结N天的一个低级BUG

    本人负责软件从应用层一直到驱动层的全部研发任务,通过对GE产品的公开的资料反复研究,一共近70个函数接口,现在都搞明白了,由于GE产品光盘手册开源了Linux和VxWorks平台的全部软件代码,唯独不 ...

  5. python死机_请问下为什么我用PYTHON写编译器一旦用READ就死机

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问下为什么我用PYTHON写编译器一旦用READ就死机 read代码如下: def praseRead(self, fsys, lev): self.n ...

  6. centos7进系统死机_电脑小白想学重装系统要怎么做?详细过程分享,学会远离电脑店...

    电脑由硬件与软件组成,二者相辅相成,任何一个出现不正常都会引起电脑出现问题,比如蓝屏.黑屏.不能连网.死机.卡顿等等,对于这些常见的故障现象,5%的可能性是硬件出现了问题,95%的可能性是系统出现了问 ...

  7. 黑苹果睡眠重启后死机_苹果8p突然黑屏,卡机,死机等怎么办?苹果8p维修指南

    大部分使用苹果手机的用户,实际上对于iPhone并不是十分了解!在使用中常常会遇到各种情况!比如苹果8p突然黑屏,卡机,死机.排除摔机.进水这些因素,就使用中苹果8p突然黑屏,卡机,死机无法开机的情况 ...

  8. win7c语言编译器死机,win7 死机_电脑在装win7的时候,到了选择语言这里会死机呢?......

    win7系统电脑经常卡死死机怎么样解决 1.在出现卡屏死机时按下Ctrl+Alt+Delete三个键; 2.在弹出的界面中点击"任务管理器"; 3.点击"文件" ...

  9. mysql 硬盘死机_磁盘空间不够导致mysql崩溃重启

    起因: 群里有人提了句pt-ioprofile,我不知道,就查了查,想测一测,想以后可能会有帮助. 为了能看到效果,我选择了我虚拟机上最大的压测表Sbtest1,该表有100w数据,执行update ...

最新文章

  1. 分布式平台下的HS(High-Security) --Apache Shiro API(介绍)
  2. linux mysql安装 读写分离_linux下安装mysql-proxy 配置读写分离
  3. 人工机器:机器人模块化和双足机器人被动行走
  4. 阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
  5. 新基建时代,腾讯云数据库沿主赛道加速演进
  6. 火狐与Chrome浏览器的移动端调试模式(手机页面、自适应)
  7. cad计算机绘图入门,【菜鸟宝典】AutoCAD制图入门教学!
  8. mPush实战笔记6常见问题
  9. 解决office2016显示图标异常——转载
  10. 无线鼠标插上去没反应
  11. html 5与css 3权威指南 第2版 pdf,html5与css3权威指南
  12. 单元测试总结反思_单元考试反思总结
  13. Phalcon PHP 中文,Phalcon 入门
  14. VUE打印 每页顶部添加一个二维码
  15. 关于帐号因诱导关注违规进行粉丝删除的处理通知
  16. 【Web技术】929- 前端海报生成的不同方案和优劣
  17. uC/OS iii(三)任务管理之任务状态
  18. 程序员专属10张壁纸
  19. 【效率】再见付费的 TeamViewer,这款国产轻量级远程控制软件是绝佳的替代品!...
  20. 一文读懂责任分配矩阵,解决你80%的项目难题

热门文章

  1. vue异步引入百度地图API
  2. LPCTSTR乱码问题
  3. 4寸大屏智能手机超值购,更有千元话费等你拿
  4. 开源运动发展史与开源许可证(BSD、GPL、Apache、MIT、木兰(中国))的那些事儿
  5. 润乾键盘控制填报光标移动
  6. 【无标题】AutoLeaders控制组何梓昀——51单片机学习笔记
  7. [转贴]ERP实施呕心沥血谈
  8. Arduino SPI快速上手
  9. jacob word 页眉多页插入
  10. 快速上手 github