发新帖我要提问
123
返回列表
打印
[综合信息]

Synwit SWM系列单片机的 UART FIFO

[复制链接]
楼主: AdaMaYun
手机看帖
扫描二维码
随时随地手机跟帖
41
chenci2013 发表于 2023-5-7 18:29
不读取串口FIFO的数据 数据一直会保存在FIFO中吗?

未断电是会一直保存的。

使用特权

评论回复
42
华芯微特FAE| | 2023-5-8 10:09 | 只看该作者
beacherblack 发表于 2023-5-7 19:19
如何把fifo中的数据读出来

读 UART->DATA 寄存器,硬件会读取并返回 FIFO RX 缓存中的数据。

使用特权

评论回复
43
tpgf| | 2023-5-12 08:05 | 只看该作者
FIFO只是一个缓冲器而已,如果你的CPU没有什么别的工作或完全处理过来uart数据的话,可以用noFIFO模式,如果你的CPU有一些耗时工作要处理,可能uart数据来了很多才开始处理,这样就需要FIFO做缓冲区了

使用特权

评论回复
44
keaibukelian| | 2023-5-12 08:34 | 只看该作者
FIFO的设计时优秀而合理的,它已经帮你向导了收发过程中存在的任何问题,只要初始化配置UART后,就可以放心的收发了,FIFO和中断例程会自动搞定一切

使用特权

评论回复
45
paotangsan| | 2023-5-12 12:18 | 只看该作者
发送时,只要发送FIFO不满,数据只管往里连续放,放完后就直接退出发送子程序,随后,FIFO真正发送完成后会自动产生中断,通知主程序:我已经完成了真正的发送

使用特权

评论回复
46
renzheshengui| | 2023-5-12 13:45 | 只看该作者
也可以软件字节定义一种缓冲区作为FIFO

使用特权

评论回复
47
wakayi| | 2023-5-12 14:05 | 只看该作者
UART收发FIFO主要是为了解决收发中断过于频繁而导致的CPU效率不高的问题

使用特权

评论回复
48
wowu| | 2023-5-12 14:24 | 只看该作者
在进行UART通信时,中断方式比轮询方式要简便且效率高。但是,如果没有收发FIFO,则每传输一个数据(5~8位)都要中断处理一次,效率仍然不高。如果有了收发FIFO,则可以在连续收发若干个数据(可多至14个)后才产生一次中断,然后一起处理。这就大大提高了收发效率

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则