请ZLG的技术支持给解释一下关于UART的问题,谢谢·
我购买了8962的开发板,而且也仔细看了您的网站上的UART的最新例程,但关于UART的使用有以下问题,请给与解释
1.书上的第214页和手册的第301页都有如下描述
寄存器 9: UART中断的FIFO深度选择 (UARTIFLS),偏移量 0x034 UARTIFLS寄存器是中断的FIFO深度(level)选择寄存器。你可以使用该寄存器来定义UARTRIS 寄存器中TXRIS和RXRIS位触发(中断)时的FIFO深度。 中断触发的依据是,当FIFO的载入的数据量(深度)超过某一水平时触发,而不是当载入的数据量(深 度)达到某一水平的时候触发。也就是说,FIFO所装的数据量(深度)超过规定触发的水平时,就产生 中断。例如,如果接收触发的水平被设为1/2,那么中断将在模块接收第9个字符时触发。 复位完成后,TXIFLSEL和RXIFLSEL位都会被配置,因此FIFO将以1/2作为触发深度触发中断。
请问如果我的数据长度正好是8,而不是9,会产生接收中断还是超时中断??
2. 当初选LM3M主要还是看好它有超时中断,我现在想用它来检测MODBUS的数据包结束标志(每包数据发送的间隔要大于3.5个字符时间)。
请问如果我的MODBUS数据长度是变长的,那么如果收到的数据长度不是8962FIFO设定值的整数倍会产生超时中断(这是正常的状态)。如果收到的数据长度等于8962FIFO设定值的整数倍,那么就不会产生超时中断,请问有什么解决办法使用8962的超时中断来检测MODBUS结束的3.5字符的时间。
3. 请问8962的FIFO的触发深度最大是不是只能设为7/8=14字节,不能再多了吗(LM3S不是有16字节的FIFO吗)??
|