Hands-On 基於 LKS453 對 UART 特性、參數配置進行介紹

關鍵字 :LKS453UARTBPSKeilgpiomcu

簡介

        本文內容基於 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   
作者:紮根地下

更多資訊,請掃碼關注我們!


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

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

評論