打印

LPC1766的Urat0 中断,经常有数据却不中断

[复制链接]
2164|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
saixiya|  楼主 | 2013-6-4 15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好,LPC1766的Urat0 设置的中断接收,

void uart0Init (void)
{
    INT16U ulFdiv;
    U0LCR  = 0x83;                                                      /*  允许设置波特率              */
    ulFdiv = (FPCLK / 16) / UART0_BPS;           /*  设置波特率  UART0_BPS=4800                */
    U0DLM  = ulFdiv / 256;
    U0DLL  = ulFdiv % 256;
    U0LCR  = 0x1B;                                        /*8位数据 1位停止 偶效验 */
    U0FCR  = 0x87;                                       /*  使能FIFO,设置8个字节触发点 */
    U0IER  = 0x01;                                           /*  使能接收中断                */
}

设置的优先级最高,
本设备定时向另一设备B发送2个字节的数据,B收到数据马上响应,也回传2个字节的数据。
按理来讲本设备应该每次都能够响应中断,但事实有经常收不到数据的情况(大约1/5的概率),用串口工具截取数据发现LPC1766的RX端肯定是有数据,但LPC1766就的不响应。
而且在正常中断后读取U0RBR的数据,还是两个字节,说明U0RBR和USRSR中就是收到2个字节的数据,

那么Urat0 怎么就有时候接收不到数据呢?
请教各位了。

相关帖子

沙发
_L_D_H_| | 2013-6-4 17:30 | 只看该作者
有木有使能中断???UART_IntConfig(Uartx, UART_INTCFG_RBR, ENABLE);?NVIC_EnableIRQ(UART0_IRQn);?等有关中断的的使能由木有打开....

使用特权

评论回复
板凳
ericyang001| | 2013-6-6 14:29 | 只看该作者
看程序就知道是zlg的例程;
之前和你犯了相同的错误;
U0FCR  = 0x87;                                       /*  使能FIFO,设置8个字节触发点 */
发完2个字节是不会触发中断的,发完之后接收方3.5到4.5个帧时间后才会触发超时中断,可以从这一点来考虑;

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
saixiya + 2 赞一个!是的,通过示波器观察差不多要延时1.
地板
saixiya|  楼主 | 2013-12-18 16:36 | 只看该作者
不知道为什么,不能给分。
时间太长了,忘记了是怎么解决的了。

使用特权

评论回复
5
rocdove| | 2013-12-18 23:30 | 只看该作者
楼主现在如何了,学习还是在工作?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

25

帖子

0

粉丝