TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748的UART0接收中断进不去

我遇到的情况是:如果uart0配置好后先发送数据,则在收到上位机发来的数据时,能进入接收中断;若没有用先发送,则能收到上位机发来的数据,也能看到接收缓存里是上位机发来的第一个数,IIR中也产生了相应的中断标志,但就是无法进入中断服务函数。

HG:

建议接个示波器看看两种情况下,你的rx引脚上以及tx引脚上有什么变化。

Shine:

回复 HG:

请问除了uart接收中断,是否还用了其他中断?IFR中断标志位是否使能?代码不进中断的话,运行到哪里了?

zizhi zhao:

回复 Shine:

同时使用了200hz频率的gpio中断。程序一直在依据gpio中断循环运行。urat0在初始化的时候使能了发送空中断、接收fifo达到触发或超时中断、队列错误中断。这样的话我用上位机发几个数,在线模式下能看到接收缓存寄存器有值,且多发几个能使队列状态中fifo溢出位置位,且DR位也是置位状态。说明数据接受到了,但就是没有进入接收中断服务函数。若我先用dsp往外发数,则能进去发送空中断,这时上位机再给dsp发,就能进入中断了。或者是初始化不使能发送空中断,则也能正常进入接收好中断

zizhi zhao:

回复 Shine:

同时使用了200hz频率的gpio中断。程序一直在依据gpio中断循环运行。urat0在初始化的时候使能了发送空中断、接收fifo达到触发或超时中断、队列错误中断。这样的话我用上位机发几个数,在线模式下能看到接收缓存寄存器有值,且多发几个能使队列状态中fifo溢出位置位,且DR位也是置位状态。说明数据接受到了,但就是没有进入接收中断服务函数。

若我先用dsp往外发数,则能进去发送空中断,这时上位机再给dsp发,就能进入中断了。

或者是初始化不使能发送空中断,则也能正常进入接收好中断。

仿佛就是如果使能了发送fifo空中断位时,就必须立即发数据,才能让uart模块正常工作起来。或者是不能在初始化时使能发空中断,只能使能接收准备好中断……uart也能正常工作

Shine:

回复 zizhi zhao:

使能发送fifo空中断时,IIR寄存器的值是多少?

赞(0)
未经允许不得转载:TI中文支持网 » C6748的UART0接收中断进不去
分享到: 更多 (0)