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

am335x uart fifo使用问题请教

大家好,

应用中由于会经常用到串口通讯,在使用uart fifo 为减少MCU Loading设置触发level,

问题一:

请问低于level没有办法触发中断的那些数据如何收发呢?

如 Tx level =4 ; 传送15个字符的数据产生3次Tx fifo中断,剩余3个字符如何做发送处理呢?

问题二:

执行API UARTIntEnable(SOC_UART_0_REGS, ( UART_INT_THR | UART_INT_RHR_CTI));

后就自动跳入UARTIsr中了,此处感觉应该是先有对fifo写的动作到达tx level 后才会触发ISR,

不知为何?

static void UARTIsr(void)

{  

static unsigned int txStrLength = sizeof(txArray);    

static unsigned int count = 0;

intId = UARTIntIdentityGet(SOC_UART_0_REGS);

switch(intId)    

 {     case UART_INTID_TX_THRES_REACH:     

          if(0 != txStrLength)            

    {                

      UARTCharPut(SOC_UART_0_REGS, txArray[count]);

      txStrLength–;                

      count++;            

 }            

else            

{                

/* Disabling the THR interrupt. */                

UARTIntDisable(SOC_UART_0_REGS, UART_INT_THR);            

}

 }

谢谢!

pengda qiu:

回复 STONE:

请问,如何解决的?

我现在遇到一个问题,我发现UART0的中断标志位会自动清除,如果在UARTISR里面打断点就完蛋了。

user4937584:

回复 STONE:

你是怎么解决的? 我也是遇到同样的问题,中断接收不正确。怎么配置能正确的进入中断服务函数?

Steven Liu1:

回复 user4937584:

可以参考STARTERWARE的UART_EDMA例程,基本上涵盖了这些功能。

AM335X_StarterWare_02_00_01_01\build\armv7a\cgt_ccs\am335x\evmAM335x\uart_edma

user4937584:

回复 Steven Liu1:

我参考的是uart的DEMO,里写的是uart0,我改写成uart1。基本都一样。现在可以发送,中断接收程序就死机。

赞(0)
未经允许不得转载:TI中文支持网 » am335x uart fifo使用问题请教
分享到: 更多 (0)