请教一个简单的串口FIFO问题

[复制链接]
2236|4
 楼主| snowtx 发表于 2008-3-5 10:49 | 显示全部楼层 |阅读模式
    Uart_Printf("[Uart channel 0 tx FIFO Interrupt Test]
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart_TxEmpty(0);&nbsp;&nbsp;&nbsp;&nbsp;//wait&nbsp;until&nbsp;tx&nbsp;shifter&nbsp;is&nbsp;empty.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;uart0TxStr=&quot;123456789abcdef&quot;;//UART0&nbsp;Tx&nbsp;FIFO&nbsp;interrupt&nbsp;test&nbsp;is&nbsp;good!!!!
&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;rUFCON0=(2&lt&lt6)|(1&lt&lt4)|(6)|1;<br />&nbsp;&nbsp;&nbsp;&nbsp;//FIFO&nbsp;trigger:tx/rx:8byte,tx/rx_fifo&nbsp;reset(will&nbsp;be&nbsp;cleared),FIFO&nbsp;enable.<br />&nbsp;&nbsp;&nbsp;&nbsp;rUCON0&nbsp;=&nbsp;0x244;&nbsp;&nbsp;&nbsp;&nbsp;//tx:levl,rx:edge,error&nbsp;int,normal*2,interrupt(Start)<br />&nbsp;&nbsp;&nbsp;&nbsp;rINTMSK=~(BIT_GLOBAL|BIT_UTXD0);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(500);<br /><br />请问这段fifo中断测试程序在&nbsp;rINTMSK=~(BIT_GLOBAL|BIT_UTXD0);语句后市因为什么中断的阿?是发送超时么?
dld2 发表于 2008-3-5 10:53 | 显示全部楼层

就是说你可以向发送缓冲写数据了

  
 楼主| snowtx 发表于 2008-3-5 10:59 | 显示全部楼层

snowtx

嗯,但是在语句rINTMSK=~(BIT_GLOBAL|BIT_UTXD0);后会形成一个中断,我主要是不知道这个中断是怎么出发的。肯定不是8位处发条件触发的呀,因为我还没发送呢,只是允许中断了而已阿<br />
dld2 发表于 2008-3-5 11:01 | 显示全部楼层

这个中断的含义

不是说发送完毕,而是说允许发送。<br />去看手册。
 楼主| snowtx 发表于 2008-3-5 11:20 | 显示全部楼层

snowtx

明白了,发送缓冲区为空时中断,也就是允许发送对吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

66

帖子

0

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