你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】+为USART建立一个FIFO  

[复制链接]
lovelydonkey-40 发布时间:2014-4-18 00:52
        每次使用串口通信的时候,碰到设置串口通信的波特率时就在想,USART通信速度太慢,占用了太多的CPU时间。如设置波特率为9600时,发送一个字节,8位需要的时间将近1ms,如果采用等待的方式,CPU非常浪费,尤其是在连续发送一段数据的时候,CPU就完全停滞不能干任何其他的东西。于是就萌生了为USART建立一个FIFO缓存区,当缓存区非空时,自动调用串口发送中断将数据发送出去。这样CPU就能从等待中解放出来做其他事情。
        算法思路:模仿ST官方例程USB建立缓存区的方法,分配一个缓存区,大小由USART_Tx_DATA_SIZE定义,具体值由应用决定。
下面给出几个主要参数的说明: 
uint8_t  USART_Tx_Buffer[USART_Tx_DATA_SIZE];//分配缓存区
uint8_t  USART_Tx_flag = 0;//标记缓存区是否有数据
uint32_t USART_Tx_ptr_in  = 0;//发送队列尾指针
uint32_t USART_Tx_ptr_out = 0;//发送队列头指针,即将被发送的数据地址
uint32_t USART_Tx_length  = 0;//发送区为发送的数据长度
         经过这样分配之后,通过串口发送数据变成了向缓存区队列写入数据,中断函数完成数据的发送。除执行中断函数外,其他时间,CPU可以干任何其他事情。这就解决了发送串口数据占用时间过长的问题。
         源代码在附件中,使用的MCU是stm32f103vct6。实际使用过程中,其稳定性还是挺高的,只是会频繁的产生中断。其中的不足是,当工程中有USB bulk通信和串口一起通信时,USB中断会干扰串口,导致串口乱码,具体是怎么导致的未研究。有兴趣的大虾可以研究下。
         本人学生一枚,经济实力有限,又非常想学f4,望斑斑沐紫大姐垂青。
         
 
 

STM32VC_USART_FIFO.rar

下载

270.23 KB, 下载次数: 1346

收藏 3 评论41 发布时间:2014-4-18 00:52

举报

41个回答
weixuan58-30589 回答时间:2014-4-18 10:11:12

RE:【MCU实战经验】+为USART建立一个FIFO

很好的办法!!!
Volcanoscar 回答时间:2014-4-19 18:30:55

回复:【MCU实战经验】+为USART建立一个FIFO

 
dsdsadsa 回答时间:2014-4-19 18:34:03

RE:【MCU实战经验】+为USART建立一个FIFO

十分有同感的啊,谢谢楼主分享
xiaoyzi 回答时间:2014-6-3 16:03:36

RE:【MCU实战经验】+为USART建立一个FIFO

确实很有想法,看看
bjybjy 回答时间:2014-6-18 17:19:29

RE:【MCU实战经验】+为USART建立一个FIFO

WANGMING02YSP 回答时间:2014-6-23 09:29:04

RE:【MCU实战经验】+为USART建立一个FIFO

好东西啊,谢谢分享了 啊
STwqq 回答时间:2014-8-14 13:32:39

RE:【MCU实战经验】+为USART建立一个FIFO

学习下FIFO,的用法
自由飞 回答时间:2014-8-17 10:33:55

回复:【MCU实战经验】+为USART建立一个FIFO

好想法啊
liu568chen 回答时间:2014-8-17 18:27:32

RE:【MCU实战经验】+为USART建立一个FIFO

看看!!!!!!!!!!!!!!!
12345下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版