此實(shí)例選擇串口13進(jìn)行配置:
三、外設(shè)配置
添加外設(shè):
配置串口信息1:
配置串口信息2(回調(diào)函數(shù)):
中斷外設(shè)配置:
配置完畢后更新代碼。
四、部分代碼展示
/** * @brief UART_13回調(diào)函數(shù) * * 該函數(shù)作為L(zhǎng)PUART_13的中斷服務(wù)程序使用,根據(jù)接收到的事件類型執(zhí)行相應(yīng)的處理邏輯。 * 主要功能包括處理接收緩沖區(qū)滿和發(fā)送緩沖區(qū)空的事件,以及相應(yīng)的數(shù)據(jù)傳輸邏輯。 * * @param HwInstance 硬件實(shí)例標(biāo)識(shí),此處忽略 * @param Event 事件類型,指示當(dāng)前中斷的原因 * @param UserData 用戶數(shù)據(jù),此處忽略 */void UART_13_Callback(const uint8 HwInstance, const Lpuart_Uart_Ip_EventType Event, void *UserData){ (void)HwInstance; // 避免未使用參數(shù)編譯警告 (void)UserData; // 避免未使用參數(shù)編譯警告
switch(Event) { case LPUART_UART_IP_EVENT_RX_FULL: // 接收緩沖區(qū)滿事件 { // 檢查是否收到換行符或接收緩沖區(qū)即將溢出 if ((rxBuffer[rxBufferIdx] != '\n') && (rxBufferIdx != (BUFFER_SIZE - 2U))) { // 繼續(xù)接收下一個(gè)字符 rxBufferIdx++; Lpuart_Uart_Ip_SetRxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&rxBuffer[rxBufferIdx],1U); } else { // 將接收緩沖區(qū)的數(shù)據(jù)復(fù)制到發(fā)送緩沖區(qū),并初始化接收緩沖區(qū) 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: // 發(fā)送緩沖區(qū)空事件 { // 檢查是否所有數(shù)據(jù)都已發(fā)送 if(txBufferIdx > test - 1) { // 重置發(fā)送緩沖區(qū)索引 txBufferIdx = 0; } else { // 繼續(xù)發(fā)送下一個(gè)字符 Lpuart_Uart_Ip_SetTxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&txBuffer[txBufferIdx++],1U); } }break; case LPUART_UART_IP_EVENT_END_TRANSFER: // 傳輸結(jié)束事件 { // 此處可添加傳輸結(jié)束后的處理邏輯 }break; case LPUART_UART_IP_EVENT_ERROR: // 錯(cuò)誤事件 { // 此處可添加錯(cuò)誤處理邏輯 }break; default: { // 處理未知事件 }break; }}
五、注意事項(xiàng)
此處注意前文提到的一個(gè)回調(diào)的配置,應(yīng)調(diào)用此處的回調(diào)函數(shù)。
-
串口
+關(guān)注
關(guān)注
14文章
1578瀏覽量
78206 -
代碼
+關(guān)注
關(guān)注
30文章
4871瀏覽量
69906 -
VCU
+關(guān)注
關(guān)注
17文章
82瀏覽量
20810
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
求助,關(guān)于S32K342 IAR啟動(dòng)代碼問題求解
求助,關(guān)于S32K344 MQFP172 Tresos問題求解
評(píng)估I/O引腳切換時(shí),為什么NXP S32K344板變磚了?
為什么S32K344運(yùn)行Bist_Run(BIST_SAFETYBOOT_CFG)進(jìn)入Hardfault?
請(qǐng)問在S32K344中,DMA的各個(gè)channel是否與LPSPI 0~6有固定的對(duì)應(yīng)關(guān)系?
如何在S32K344上設(shè)置CS2100和配置PTA26以啟用STGL5000?
如何使用Tresos for S32K344通過SPI配置DMA?
如何在MBDT中使用S32k344進(jìn)行加密?
S32K344 Flexio模擬SPI程序不能正常執(zhí)行怎么解決?
S32K344_clockout_s32ct示例無(wú)時(shí)鐘輸出是什么原因?
MRCANHUBK344測(cè)試Qspi_Ip_Example_S32K344,遇到Qspi_Ip_Init返回STATUS_QSPI_IP_BUSY的問題求解
零死角帶你玩轉(zhuǎn)S32K344之實(shí)時(shí)時(shí)鐘RTC

S32K344 VCU實(shí)戰(zhàn)項(xiàng)目之帶你入門篇~

評(píng)論