Hands-On 基于 LKS453 对 UART 特性、参数配置进行介绍

日期2024-12-06

简介

        本文内容基于 LKS453 对 UART 特性、参数配置进行了介绍,并使用 uart_MCU_send_data Demo 程序进行 Handson 实验,实现了 MCU UART 将 01-06 数据发送到串口助手上,并通过串口打印出来。

硬件平台:凌鸥创芯-LKS_EVB_MCU453_V2.0 板,WPI-LPCLINK2 Debugger_V1.0 板

软件平台:Keil

一、UART特性:


▲ 图 1 来自LKS32MC45x_User_Manual_v1.47

 

        LKS32MC453 有 3 路 UART,全双工工作,支持 8/9 位数据位、1/2 停止位、奇/偶/无校验模式,带 1 字节 ,发送缓存、1 字节接收缓存,支持 Multi-drop Slave/Master 模式,波特率支持 300~115200。

二、程序分析

2.1 Demo函数概述

  • main 函数:程序对 UART 进行了初始化,发送数据 01-06。

int main(void)

{

    u8 num = 0;

    uart_init();  //UART 初始化

    for (uint8_t i=0;i<6;i++)               // 循环6次

{

        num++;                         // 数据自加

        UART_DelaySendOver(UART1);    // 发送数据前需要等待之前的数据发送完成

        UART_SendData(UART1, num);    //发送数据

    }

}

 

uart_init(); 函数: 程序初始化 UART 时钟,设置 UART 波特率为 115200,UART TX/RXGPIO 的复用。

void uart_init()

{

    UART_InitTypeDef uart1_config;

    GPIO_InitTypeDef uart1_gpio_config.

 

    uart1_config.BAUDRATE = 115200; // UART波特率为115200

UART_Init(UART1, &uart1_config); //是能 UART 时钟,配置 UART 波特率为115200

 

    uart1_gpio_config.GPIO_Pin    = GPIO_Pin_6;       // TX GPIO PIN

    uart1_gpio_config.GPIO_Mode   = GPIO_Mode_OUT;    // 输出模式

    uart1_gpio_config.GPIO_PuPd   = GPIO_PuPd_NOPULL; // 无上下拉

    uart1_gpio_config.GPIO_PODEna = DISABLE;          //不使能开漏

    uart1_gpio_config.GPIO_PFLT   = DISABLE;          // 不使能滤波

    GPIO_Init(GPIO2, &uart1_gpio_config);  // UART TX GPIO参数配置,并使能GPIO2时钟

 

    GPIO_StructInit(&uart1_gpio_config);

    uart1_gpio_config.GPIO_Pin    = GPIO_Pin_5;       // RX GPIO PIN

    uart1_gpio_config.GPIO_Mode   = GPIO_Mode_IN;     //输入模式

    uart1_gpio_config.GPIO_PuPd   = GPIO_PuPd_NOPULL; //无上下拉

uart1_gpio_config.GPIO_PODEna = DISABLE;          //不使能开漏

uart1_gpio_config.GPIO_PFLT   = DISABLE;          // 不使能滤波

    GPIO_Init(GPIO2, &uart1_gpio_config); // UART RX GPIO参数配置,并使能GPIO2时钟

 

    GPIO_PinAFConfig(GPIO2, GPIO_PinSource_5, GPIO_AF_UART); //GPIO2 的第5 PIN,复用为 UART RX GPIO

    GPIO_PinAFConfig(GPIO2, GPIO_PinSource_6, GPIO_AF_UART); //GPIO2 的第6 PIN,复用为 UART TX GPIO

}



UART_DelaySendOver(UART1);
函数: 发送数据前需要等待之前的数据发送完成。

UART_SendData(UART1, num); 函数:发送 32 位数据 n。

void UART_SendData(UART_TypeDef *UARTx, u32 n)

{

    UARTx->BUFF = n;

}

 
三、实验现象

       3.1 操作环境:如图2 所示,用 WPI-LPCLINK2 Debugger_V1.0 板连接凌鸥创-LKS_EVB_MCU453_V2.0 板。WPI-LPCLINK2 Debugger_V1.0 板使用 CMSIS-DAP Debugger 的 Debug 方式对 LKS453 MCU 进行程序烧录。

 

▲ 图 2 WPI-LPCLINK2 Debugger_V1.0 板连接 LKS_EVB_MCU453_V2.0 板



3.2 串口助手接收到数据 01-06:



▲ 图 3 来自开源串口助手 开源电子网: www.openedv.com

四、总结

        综上基于 LKS453 对 UART 特性、参数配置进行了介绍,并通过 Handson 实现了 MCU UART 将 01-06 数据发送到串口助手上,并通过串口助手打印出来。以上内容为 LKS453 MCU UART特性、参数配置简介,如果有问题,可以发送邮件  atu.sh@wpi-group.com 与我们联系。

五、参考文献

(1)  LKS32MC45x_User_Manual_v1.47

(2)  LKS32MC45x_Datasheet_v1.53

(3) 串口助手:XCOM V2.0 (开源电子网: www.openedv.com

(4) SDK:LKS32MC45x_PeripDemo_v2.5

(5) 原理图:LKS_EVB_MCU453_V2.0.SchDoc



欢迎在博文下方留言评论,我们会及时回复您的问题。

如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com   
作者:扎根地下

更多资讯,请扫码关注我们!


★方案内容均由个人提供,与平台无关,如有违法或侵权,请联系大大芯方案专属信箱