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次,发文人进小黑屋喔~

评论