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

cc3200串口中断接收一帧数据

如题,我想请教一下cc3200有没有一帧数据接收完成中断,我在查看中断标志发现有如下定义

#define UART_INT_EOT            0x800       // End of transfer interrupt Mask

但是经测试一帧数据接受完不会产生此中断,请问一下这个不是帧中断还是我有未使能的地方。

如果有人知道请给一个完整的接收一帧数据中断的历程,不胜感激!

gaoyang9992006:

试试传输一个以EOF文件结束标志的文件是不是可以触发这个中断

Terry Han:

CC3200的串口有一个FIFO 最低需要接收到2个Bytes后才能产生串口中断,如果想使用一个Byte进行中断处理,需要在初始化中将UART的FIFO关闭掉,不要使用串口FIFO缓存单元,并且可以打开超时检测。

Alvin Chen:

HI,Huiyu

串口初始化中失能FIfo :UARTFIFODisable(UARTA0_BASE);

设置RX中断:UARTIntEnable(UARTA0_BASE,UART_INT_RX);

注册中断函数:UARTIntRegister(UARTA0_BASE,uart_handle);

中断函数:

void uart_handle(void)

{

        int i;

         i=UARTIntStatus(UARTA0_BASE,ture);

         if(i&UART_INT_RX)

        {

            while(UARTCharAvail(UARTA0_BASE)){

             UARTCharPut(UARTA0_BASE,UARTCharGet(UARTA0_BASE));

           }

          UARTIntClear(UARTA0_BASE,UART_INT_RX);

         }

}

如果有误,请谅解,以官网SDK为准

huiyu shi:

回复 gaoyang9992006:

我要传输的不是文件,我需要板间通信

huiyu shi:

回复 Terry Han:

谢谢,我试试

huiyu shi:

回复 Alvin Chen:

这个只能接受一个字节,但是我想接受一组。

Terry Han:

回复 huiyu shi:

如果你要接收一组数据后进入串口中断,建议打开uart的FIFO,该FIFO最大支持16Bytes的缓存数据后进入UART中断,

UART:

Separate 16×8 transmit (TX) and receive (RX) FIFOs to reduce CPU interrupt service loading

huiyu shi:

回复 Terry Han:

您好,我使用fifo时候遇到了一点问题,请教一下。我把fifo设置为4字节,中断确实触发了。也是一下接收到了四个字节数据,但是比如我发送6个字节数据时候,中断会触发一次,接收到四个字节,剩余两个暂时收不到,等待我下次在发送6个字节时候,上次的两个和这次的前两个字节到一起触发一次,后面四个字节触发了一次中断。这样一来数据都乱了。请问怎么设置才可以一下子读取出六个字节(在我fifo为四个字节情况下)。

因为如果我发送的数据长度不定。请指教

赞(0)
未经允许不得转载:TI中文支持网 » cc3200串口中断接收一帧数据
分享到: 更多 (0)