这样CPU的效率实在是太低了啊

[复制链接]
 楼主| zhaoxqi 发表于 2014-8-23 18:32 | 显示全部楼层 |阅读模式
比如说FIFO默认的1/2满,接收中断触发,此时触发的中断是不是说接收的数据还没有全部接收完毕,只是收了4位,这样程序还要一直等待数据接收完毕。如果是这样的话,接收中断就占用了大量的程序时间,CPU的效率实在是太低了啊。
 楼主| zhaoxqi 发表于 2014-8-23 18:32 | 显示全部楼层
要是我理解错了,应该是怎么样子的?
jiajs 发表于 2014-8-23 18:34 | 显示全部楼层

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

另外也可以设置DMA自动存储数据,就完全可以解放CPU了。
 楼主| zhaoxqi 发表于 2014-8-23 18:36 | 显示全部楼层
哦了,我再瞅瞅固件手册怎么写的。
yszong 发表于 2014-8-23 18:37 | 显示全部楼层
楼主理解有误,UART发送数据以Byte为单位的。
yszong 发表于 2014-8-23 18:37 | 显示全部楼层
FIFO是为了节约CPU资源设计的,所谓1/2设置的是收到一定数据后,提醒内核的时机。
 楼主| zhaoxqi 发表于 2014-8-23 18:38 | 显示全部楼层
嗯,了解了,多谢大家啊
 楼主| zhaoxqi 发表于 2014-8-23 18:38 | 显示全部楼层
结贴了,大家周末愉快哈
comeon201208 发表于 2014-8-23 22:20 | 显示全部楼层
这个跟着楼上几位学习的了啊。。
zh113214 发表于 2014-8-25 22:58 | 显示全部楼层
表示不是很懂,希望可以向楼主讨教!!
搞IT的 发表于 2014-8-26 22:30 | 显示全部楼层
不知道你的这款CPU的效率要多高才是不低呢。。
bestray 发表于 2014-9-2 11:41 | 显示全部楼层
学习了~
i1mcu 发表于 2014-9-3 23:30 | 显示全部楼层
用中断。
i1mcu 发表于 2014-9-3 23:30 | 显示全部楼层
触发中断就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

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