LM3S 串口收发心得
来源:互联网 发布:关闭电脑21端口 编辑:程序博客网 时间:2024/06/18 09:45
最近项目初学TI lm3s 系列的mcu,用的lm3s9b96,例程中的uart例子收发都是简单的查询等待方式,不具备多少实用性且效率低下,于是分别用串口FIFO中断不等待的接收方式和DMA发送的方式实现了串口的收发,中间遇到了不少的问题,但问题总归是问题,用心总是会解决的。
2014.5.28
先前写的程序本来在中断中置接收结束标志的,今天突然遇到了一个问题,假如串口接收FIFO设置为6/8的深度,并设置接收FIFO中断 和 接收超时中断, 当串口接收的数据长度正好为12的整数倍时,就不会进入超时中断。整整思考了一下午,得知lm3s系列mcu的接收超时中断是在FIFO中存在数据,但没有到预设的12字节的接收中断触发深度时,则在3个数据的传输时间间隔内会触发超时中断,取走最后的数据。可当发送数据长度为12的整数倍时,由于一次放入12个字节全部被取走,也没有后续数据发送,不满足此芯片超时中断触发的条件,无法判断接收是否完成。
解决办法为每次中断接收时不把12个字节长度的数据全部取走,具体为在uart 的中断服务程序中设一个整形变量,每次进入中断后初始化为0,每取走一个数据变量值+1,当取到第11个的时候,break掉,等待超时中断到来取走之后的数据,这样就随时可以满足超时中断的触发条件。
在实验室同学的建议下, 第一次写博客,希望能与大家分享一些东西的同时也提高自己。
0 0
- LM3S 串口收发心得
- LM3S串口例子
- 通过串口收发短消息
- 通过串口收发短消息
- 串口收发数据
- 通过串口收发短消息
- 监控串口数据收发
- 串口收发总结
- stm32串口1收发
- stm32串口收发
- 串口数据收发问题
- 串口收发数据1
- 串口多路复用收发数据
- ZigBee串口收发数据
- linux串口收发
- 通过串口收发短消息
- 单片机串口收发数据
- c#串口收发数据
- 组合查询——拼接字符串
- 理解JavaScript中的事件处理
- UNIX系统文件I/O总结
- XML命名空间深度解析 —— XML1.0和XML1.1区别
- Generate Parentheses
- LM3S 串口收发心得
- 14周【项目3-立体类族共有的抽象类】
- hibernate 4.0+版本和3.0+版本的区别总结
- js点击相应的li增加class
- 解决Android SDK Manager 更新、下载慢以及待安装包列表不显示
- 关于typedef用法总结
- “百年一遇”别成了豆腐碴工程的挡箭牌
- UML回顾-通信图
- CStdioFile UNICODE编译 读取中文汉字乱码