[MCU] CPU的效率

[复制链接]
 楼主| zhaoxqi 发表于 2019-5-9 22:28 | 显示全部楼层 |阅读模式

比如说FIFO默认的1/2满,接收中断触发,此时触发的中断是不是说接收的数据还没有全部接收完毕,只是收了4位,这样程序还要一直等待数据接收完毕。如果是这样的话,接收中断就占用了大量的程序时间,CPU的效率实在是太低了啊。
jiaxw 发表于 2019-5-9 22:32 | 显示全部楼层

什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| zhaoxqi 发表于 2019-5-9 22:38 | 显示全部楼层
要是我理解错了,应该是怎么样子的?
jiajs 发表于 2019-5-9 22:41 | 显示全部楼层

FIFO是为了节省CPU时间的,设置为1/2满,此时,在收到4个以上字节(不是位)时会产生中断,此时需要您把数据及时取走,因为FIFO只有8个字节,超过8个字节不取走,就会丢失数据。
jiajs 发表于 2019-5-9 22:44 | 显示全部楼层
另外,还有超时中断,比如只收到1个字节,在一定时间内未有新字节过来,也会产生中断,这样可以及时提取数据。
wyjie 发表于 2019-5-9 22:46 | 显示全部楼层

另外也可以设置DMA自动存储数据,就完全可以解放CPU了。
 楼主| zhaoxqi 发表于 2019-5-9 22:49 | 显示全部楼层

哦了,我再瞅瞅固件手册怎么写的。
yszong 发表于 2019-5-9 22:52 | 显示全部楼层
楼主理解有误,UART发送数据以Byte为单位的。
yszong 发表于 2019-5-9 22:55 | 显示全部楼层
FIFO是为了节约CPU资源设计的,所谓1/2设置的是收到一定数据后,提醒内核的时机。
 楼主| zhaoxqi 发表于 2019-5-9 22:59 | 显示全部楼层
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

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