请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSPM0G3507 工具与软件:
尊敬的支持部门:
我在 MSPM0G3507控制器中读取 RXDATA UART0时遇到问题。 下面是我的代码。
void UART0_DIS_INST_IRQHandler (void)
{
uint8_t byteReceived = 0x00 ;
开关(DL_UART_Main_getPendingInterrupt (UART0_DIS_INST))
{
案例 DL_UART_MAIN_IIDX_EOT_DONE:
usart0_all_data_transmitted = true; //传输所有数据
休息;
案例 DL_UART_MAIN_IIDX_TX:
usart0_data_transmitted = true;//经过第一个相位
休息;
案例 DL_UART_MAIN_IIDX_RX:
usart0ReceiveInProgress = true ;
while (!(DL_UART_isRXFIFOEMpty (UART0_DIS_INST))//检查中是否有任何字节可用于读取
{
DL_GPIO_toggletPins (GPIOA_PORT、GPIOA_BYPASS_ON_LED_PIN) ; //
usart0_rxData[usart0_rxCounter]= DL_UART_receiveData (UART0_DIS_INST) ;
if (usart0_rxData[0]=> 0x01)
{
DL_GPIO_setPins (GPIOA_PORT、GPIOA_FAULT_LED_PIN) ; //启用最大485传输
}
usart0_rxCounter++ ;
}
休息;
默认值:
休息;
}
在中断模式下、我是在检查 FIFO 状态后读取接收数据。 我没有获取实际接收到的数据。 我的接收 FIFO 中断启用>= 2级别。 在每个字节上切换 GPIOA_BYPASS_ON_LED_PIN 会尝试读取。
但 从未设置 GPIO_FAULT_LED_PIN。 接收数据的第一个字节为0x01。
我认为 " DL_UART_receiveData (UART0_DIS_INST) "有一些问题。 欢迎使用 Ant 建议。
此致
图尔西·达斯