Other Parts Discussed in Thread: SYSCONFIG
部件号: AM13E23019
主题: SysConfig 中讨论的其他器件
大家好、在我的应用中、我需要检查 Rx 线路是否空闲、然后需要尽快生成中断。 我尝试使用以下 SysConfig 设置实现此目的

退出我的应用程序
#define APP_UART_TRANSFER_SIZE (0x8U)
uint8_t tcf_txbuffer[APP_UART_TRANSFER_SIZE]={'T', 'C', 'F', 'T', 'E', 'S', 'T', ' '};
uint8_t ncf_txbuffer[APP_UART_TRANSFER_SIZE]={'N', 'C', 'F', 'T', 'E', 'S', 'T', ' '};
uint8_t tcf_rxbuffer[APP_UART_TRANSFER_SIZE], ncf_rxbuffer[APP_UART_TRANSFER_SIZE];
uint8_t txCount = 0, rxCount = 0;
us8 index = 0;
uint8_t uart_interrupt_graph[22][100];
main()
{
/* Testing UART */
while (txCount < APP_UART_TRANSFER_SIZE)
{
DL_UART_transmitData(APP_UART_0_INST, tcf_txbuffer[txCount]);
txCount++;
}
while(DL_UART_isBusy(APP_UART_0_INST));
/* Code to generate Break Character */
DL_UART_enableLINSendBreak(APP_UART_0_INST);
DL_Common_delayCycles(188330);
DL_UART_disableLINSendBreak(APP_UART_0_INST);
txCount = 0;
while (txCount < APP_UART_TRANSFER_SIZE)
{
DL_UART_transmitData(APP_UART_0_INST, ncf_txbuffer[txCount]);
txCount++;
}
while(1)
{
// Superloop
}
}
// ISRs
__attribute__((section(".TI.ramfunc")))
extern "C" void APP_UART_0_INT_Handler()
{
g_diagCounters.uartIsrCount++;
uint32_t interruptStatus = DL_UART_getPendingInterrupt(APP_UART_0_INST);
uart_interrupt_graph[interruptStatus][index] = 1;
index++;
switch (interruptStatus)
{
// /* UART interrupt index for end of transmission */
case DL_UART_IIDX_EOT_DONE:
{
// LOG("UART IIDX: EOT_DONE\r\n");
BSP_AM13E230_E2::Debug1Pin_Toggle();
break;
}
/* UART interrupt index for Line Time Out */
case DL_UART_IIDX_LTOUT:
{
// LOG("UART IIDX: LTOUT\r\n");
BSP_AM13E230_E2::Debug3Pin_Toggle();
break;
}
/* UART interrupt index for receive timeout */
case DL_UART_IIDX_RX_TIMEOUT_ERROR:
{
BSP_AM13E230_E2::Debug2Pin_Toggle();
// LOG("UART IIDX: RX_TIMEOUT_ERROR\r\n");
break;
}
}
}

注意:TX 和 RX 引脚外部环回、逻辑分析仪通道 0 与其连接。 优化级别为-O2
问题:
- 计算得出的 RX 超时中断= 150 ns 意味着什么(在 sysconfig 中)。 它是否要取决于波特率? 如何决定这一点?
- 我看到 Tx 超时和线路超时的延迟约为 1.5ms



