硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2429|回复: 2
收起左侧

[技术讨论] 关于uart_fifo 关中断的一些疑问!请教一下大家

[复制链接]

2

主题

12

回帖

18

积分

新手上路

积分
18
发表于 2021-8-5 11:08:22 | 显示全部楼层 |阅读模式
大家好!硬汉哥好!!!一直有一个疑问。如图所示。截图的安抚来的 串口fifo 代码。。。

截图所示1处的 关中断 是不是可以 去掉??我理解的是 _pUart->usTxCount 这个变量在此处 只是读取 ,虽然在中断是会写该变量。但是应该是没有影响的。
即可以简化为:一个变量在中断只写,在主函数只读。或者一个变量在中断只读,在主函数只写。这种情况下需要关中断吗???

截图所示2处:这种情况是一定需要关闭中断的。主函数和中断同时写  必须关中断保护。


欢迎大家讨论!!!硬汉哥 麻烦解答下!!!谢谢了

安抚莱的 写串口缓存代码截图

安抚莱的 写串口缓存代码截图
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2021-8-6 07:57:19 | 显示全部楼层
可以去掉。

因为这个变量我们已经加上了__IO的修饰。
回复

使用道具 举报

41

主题

215

回帖

338

积分

高级会员

积分
338
发表于 2021-8-15 21:09:39 | 显示全部楼层
1. 参考linux内核的kfifo,只有一个读一个写,任何时候都可以不用关中断。这是串口中断的终极优化
2. 用DMA接收,接收一个字符后,如果超过一定时间没有收到新的,就认为接收结束
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 17:35 , Processed in 0.260728 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表