N32L40x UART 異常排查

一、簡介

通用同步異步收發器(USART)是一種全雙工串行數據交換接口,支持同步或異步通信。可靈活配置,以便於與多種外部設備進行全雙工數據交換。

USART 接口發送與接收波特率可配置,也支持通過 DMA 進行連續通信。USART 還支持多處理器通信、LIN 模式、同步模式、單線半雙工通信、智慧卡異步協議、IrDA SIR ENDEC 功能、以及硬體流控制功能。支持全雙工通信。

USART 框圖

二、無法正常列印異常排查

  • 確認 UART TX/RX 是否接好 (MCU_PA9/TX1、MCU_PA10/RX1)
  • 驗證確認現象,對異常現象分析可能的原因。
  • 結合《 UM_N32L40x 系列用戶手冊 0.pdf 》和《 DS_N32L40x 系列數據手冊 V1.0.pdf 》逐步排查。

2.1 結合原理圖排查硬體接線

具體步驟:

2.1.1 確保板子上電正常,並正確連接 Debug USB 口到 PC 端

2.1.2 檢查跳線 MCU_RX/MCU_TX 接線帽是否連接





2.2 驗證現象

具體步驟:

2.2.1 打開 PC 端 XCOM,並設定 波特率、停止位、數據位、奇偶校驗位

2.2.2 不更改代碼的情況下,先燒寫代碼到 Demo 板

2.2.3 復位板子觀察現象(確認無法列印)

2.3 排查軟體

具體步驟:

2.3.1 檢查 RCC_Configuration 是否使能相應時鐘

2.3.2 查看 GPIO_Configuration() 配置是否正常

2.3.3 修改後,重新編譯下載測試

/*檢查 Uart 時鐘配置 */

void RCC_Configuration(void)

{

    /* Enable GPIO clock */

    GPIO_APBxClkCmd(USARTx_GPIO_CLK, ENABLE);

    /* Enable USARTx Clock */

    USART_APBxClkCmd(USARTx_CLK, ENABLE);

}

#define GPIO_APBxClkCmd   RCC_EnableAPB2PeriphClk

#define USARTx_GPIO_CLK    RCC_APB2_PERIPH_GPIOA

 

/*檢查 GPIO配置 */

void GPIO_Configuration(void)

{

    GPIO_InitType GPIO_InitStructure;

    /* Initialize GPIO_InitStructure */


    GPIO_InitStruct(&GPIO_InitStructure);

 

    /* Configure USARTx Tx as alternate function push-pull */

    GPIO_InitStructure.Pin            = USARTx_TxPin;

    GPIO_InitStructure.GPIO_Mode      = GPIO_Mode_AF_PP;

    GPIO_InitStructure.GPIO_Alternate = USARTx_Tx_GPIO_AF;

    GPIO_InitPeripheral(USARTx_GPIO, &GPIO_InitStructure);

   

    /* Configure USARTx Rx as alternate function push-pull and pull-up */

    GPIO_InitStructure.Pin            = USARTx_RxPin;

    GPIO_InitStructure.GPIO_Pull      = GPIO_Pull_Up;

    GPIO_InitStructure.GPIO_Alternate = USARTx_Rx_GPIO_AF;

    GPIO_InitPeripheral(USARTx_GPIO, &GPIO_InitStructure);

}

 

#define USARTx_RxPin      GPIO_PIN_10

#define USARTx_TxPin      GPIO_PIN_9

#define USARTx            USART1

#define USARTx_GPIO       GPIOA

#define USARTx_Rx_GPIO_AF GPIO_AF1_USART1

#define USARTx_Tx_GPIO_AF GPIO_AF1_USART1

 

通過 UM_N32L40x 系列用戶手冊 V1.0.pdf 手冊,查找 GPIO 和 AFIO 章節,5.2.5.9.1 USART1 管腳重映射,發現 GPIO 重映射配置不正確,應該配置為 AF4,重新修改編譯下載到 Demo 板運行正常。

#define USARTx_Rx_GPIO_AF GPIO_AF4_USART1

#define USARTx_Tx_GPIO_AF GPIO_AF4_USART1

 

 

 



三、參考文獻

[1] UM_N32L40x 系列用戶手冊 V1.0.pdf

[2] DS_N32L40x 系列數據手冊 V1.0.pdf


歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com
作者:John Ge / 葛龍

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論