CC3200串口接收超时功能可以关闭不,如何关闭?要求做到收到1字节数据,立马进中断。
我用CC3200如另外一个串口设备通信,对方要求收到它的完整数据帧后在1ms以内回复一个字节的ACK给他,现在每次进中断时间好像在2.5ms左右的样子,
已经过了1ms的ack时间。
void InitUART1()
{
MAP_UARTConfigSetExpClk(UART1,MAP_PRCMPeripheralClockGet(UART1_PERIPH), UART1_BAUD_RATE, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_EVEN));
MAP_IntPrioritySet(INT_UARTA1, INT_PRIORITY_LVL_1);
MAP_UARTIntRegister(UART1,UART1_ISR);
MAP_UARTFIFODisable(UART1);
MAP_UARTIntEnable(UART1, UART_INT_RX); MAP_UARTIntClear(UART1, UART_INT_RX); MAP_UARTEnable(UART1);}
Terry Han:
CC3200上电复位后,默认Out of reset, both FIFOs are disabled and act as 1-byte-deep holding registers. 如果要打开 The FIFOs are enabled by setting the FEN bit in UARTLCRH. 在操作UART串口时注意如果不想使用FIFO可以关闭FIFO功能,你有把FIFO关闭吧,
user3613312:
回复 Terry Han:
Terry Han
CC3200上电复位后,默认Out of reset, both FIFOs are disabled and act as 1-byte-deep holding registers. 如果要打开 The FIFOs are enabled by setting the FEN bit in UARTLCRH. 在操作UART串口时注意如果不想使用FIFO可以关闭FIFO功能,你有把FIFO关闭吧,
user3613312:
回复 user3613312:
看来这个是CC3200的一个硬伤了,我最后没辙了,只能在前面收到长度字节的时候,用定时器做计时,到了时间直接回复ACK。
但这样存在一个风险,万一中途数据出错了也回ACK,不过不影响使用。
da qin zheng sheng:
用fifo功能效果更好的!