请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28377S 尊敬的团队:
配置:CCS 未优化、SCI 使用空闲线模式、不使用 FIFO、只将 SCI 配置为与 PC 通信、因此没有地址位。
我的客户端希望发送主函数中数组的第一个位、然后触发发送中断、然后发送发送中断中的剩余数据。
Q:在向 TXBUF 写入数据之前、发送和发送中断已经被使能(TXENA、TXINTENA 被设定为1)、并且接收和接收中断被关闭(RXENA、RXBKINTENA 被设定为0)。
使用调试单步调试。 将数据写入 TXBUF 的 TXDT 位后、TXRDY 变为0、表示数据已写入 TXBUF。 但是、如果执行继续、数据总是保存在 TXBUF 寄存器中、不会被移动到 TXSHF 寄存器中进行传输。 TXRDY 位始终为0、发送中断不能被触发。
void User_Sci_Init(void) // SCI外设初始化
{
User_Sci_Gpio_Init();
Interrupt_register(INT_SCIA_RX, sciaRxISR); // Map the ISR to the wake interrupt.
Interrupt_register(INT_SCIA_TX, sciaTxISR);
SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 9600, (SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE | SCI_CONFIG_PAR_NONE)); // LSP Clk = SYSCLK / 4 (Default)
SCI_enableModule(SCIA_BASE);
SCI_disableLoopback(SCIA_BASE);
SCI_resetChannels(SCIA_BASE);
SCI_disableFIFO(SCIA_BASE);
SCI_enableInterrupt(SCIA_BASE, SCI_INT_TXRDY | SCI_INT_RXRDY_BRKDT);
SCI_clearInterruptStatus(SCIA_BASE, SCI_INT_TXRDY | SCI_INT_RXRDY_BRKDT);
SCI_performSoftwareReset(SCIA_BASE);
Interrupt_enable(INT_SCIA_RX);
Interrupt_enable(INT_SCIA_TX);
Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);
}
此致