此實例選擇串口13進行配置:



三、外設配置

添加外設:

配置串口信息1:

配置串口信息2(回調函數):

中斷外設配置:

配置完畢后更新代碼。
四、部分代碼展示
/** * @brief UART_13回調函數 * * 該函數作為LPUART_13的中斷服務程序使用,根據接收到的事件類型執行相應的處理邏輯。 * 主要功能包括處理接收緩沖區滿和發送緩沖區空的事件,以及相應的數據傳輸邏輯。 * * @param HwInstance 硬件實例標識,此處忽略 * @param Event 事件類型,指示當前中斷的原因 * @param UserData 用戶數據,此處忽略 */void UART_13_Callback(const uint8 HwInstance, const Lpuart_Uart_Ip_EventType Event, void *UserData){ (void)HwInstance; // 避免未使用參數編譯警告 (void)UserData; // 避免未使用參數編譯警告
switch(Event) { case LPUART_UART_IP_EVENT_RX_FULL: // 接收緩沖區滿事件 { // 檢查是否收到換行符或接收緩沖區即將溢出 if ((rxBuffer[rxBufferIdx] != '\n') && (rxBufferIdx != (BUFFER_SIZE - 2U))) { // 繼續接收下一個字符 rxBufferIdx++; Lpuart_Uart_Ip_SetRxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&rxBuffer[rxBufferIdx],1U); } else { // 將接收緩沖區的數據復制到發送緩沖區,并初始化接收緩沖區 memcpy(txBuffer,rxBuffer,rxBufferIdx+1); Lpuart_Uart_Ip_AsyncSend(LPUART_UART_IP_INSTANCE_USING_13,txBuffer,1); txBufferIdx++; memset(rxBuffer,0,rxBufferIdx+1); test = rxBufferIdx + 1; rxBufferIdx = 0; Lpuart_Uart_Ip_SetRxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&rxBuffer[rxBufferIdx],1U); }; }break; case LPUART_UART_IP_EVENT_TX_EMPTY: // 發送緩沖區空事件 { // 檢查是否所有數據都已發送 if(txBufferIdx > test - 1) { // 重置發送緩沖區索引 txBufferIdx = 0; } else { // 繼續發送下一個字符 Lpuart_Uart_Ip_SetTxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&txBuffer[txBufferIdx++],1U); } }break; case LPUART_UART_IP_EVENT_END_TRANSFER: // 傳輸結束事件 { // 此處可添加傳輸結束后的處理邏輯 }break; case LPUART_UART_IP_EVENT_ERROR: // 錯誤事件 { // 此處可添加錯誤處理邏輯 }break; default: { // 處理未知事件 }break; }}
五、注意事項

此處注意前文提到的一個回調的配置,應調用此處的回調函數。
-
串口
+關注
關注
15文章
1608瀏覽量
82058 -
代碼
+關注
關注
30文章
4947瀏覽量
73291 -
VCU
+關注
關注
17文章
86瀏覽量
21482
發布評論請先 登錄
首搭RT-Thread程翧車控平臺| RT-Thread程翧 S32K344 快速原型開發平臺正式上市!| 產品動態

快來圍觀:S32K344 VCU項目開發隨筆~
評論