[综合信息] Synwit SWM系列单片机的 UART FIFO

[复制链接]
华芯微特FAE 发表于 2023-5-8 10:07 | 显示全部楼层
chenci2013 发表于 2023-5-7 18:29
不读取串口FIFO的数据 数据一直会保存在FIFO中吗?

未断电是会一直保存的。
华芯微特FAE 发表于 2023-5-8 10:09 | 显示全部楼层
beacherblack 发表于 2023-5-7 19:19
如何把fifo中的数据读出来

读 UART->DATA 寄存器,硬件会读取并返回 FIFO RX 缓存中的数据。
tpgf 发表于 2023-5-12 08:05 | 显示全部楼层
FIFO只是一个缓冲器而已,如果你的CPU没有什么别的工作或完全处理过来uart数据的话,可以用noFIFO模式,如果你的CPU有一些耗时工作要处理,可能uart数据来了很多才开始处理,这样就需要FIFO做缓冲区了
keaibukelian 发表于 2023-5-12 08:34 | 显示全部楼层
FIFO的设计时优秀而合理的,它已经帮你向导了收发过程中存在的任何问题,只要初始化配置UART后,就可以放心的收发了,FIFO和中断例程会自动搞定一切
paotangsan 发表于 2023-5-12 12:18 | 显示全部楼层
发送时,只要发送FIFO不满,数据只管往里连续放,放完后就直接退出发送子程序,随后,FIFO真正发送完成后会自动产生中断,通知主程序:我已经完成了真正的发送
renzheshengui 发表于 2023-5-12 13:45 | 显示全部楼层
也可以软件字节定义一种缓冲区作为FIFO
wakayi 发表于 2023-5-12 14:05 | 显示全部楼层
UART收发FIFO主要是为了解决收发中断过于频繁而导致的CPU效率不高的问题
wowu 发表于 2023-5-12 14:24 | 显示全部楼层
在进行UART通信时,中断方式比轮询方式要简便且效率高。但是,如果没有收发FIFO,则每传输一个数据(5~8位)都要中断处理一次,效率仍然不高。如果有了收发FIFO,则可以在连续收发若干个数据(可多至14个)后才产生一次中断,然后一起处理。这就大大提高了收发效率
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部