本帖最后由 hejunpeng 于 2016-5-12 14:08 编辑
NXP MAPS-KL43 UART快速上手 —— 基于Keil uVision5 和 Kinetis SDK 2.0 UART串口收发一直是MCU基本通信方式,此帖使用MAPS-KL43和官方SDK 2.0对KL43的UART进行收发操作,使用UART2 和串口调试助手,调试助手发送数据,MCU收到数据后再把数据传回来,一个完整测试过程,下面直接贴上程序代码和演示视频,并提供相关注释,编译环境采用 Keil uVision5。 MAPS-KL43开发套件: 原理图:
源码: -
- #include "board.h"
- #include "clock_config.h"
- #include "fsl_common.h"
- #include "fsl_uart.h"
- #include "fsl_port.h"
- #include "pin_mux.h"
- /*******************************************************************************
- * Definitions
- ******************************************************************************/
- #define DEMO_UART UART2
- #define DEMO_UART_CLKSRC kCLOCK_BusClk
- /*******************************************************************************
- * Main
- ******************************************************************************/
- int main(void)
- {
- uint8_t buffer;
-
- /* 定义串口配置结构体. */
- uart_config_t uart_config;
- /* 初始化系统时钟. */
- BOARD_BootClockRUN();
-
- /* 使能UART GPIO时钟. */
- CLOCK_EnableClock(kCLOCK_PortD);
-
- /* 配置UART GPIO 复合端口. */
- PORT_SetPinMux(PORTD, 2, kPORT_MuxAlt3);
- PORT_SetPinMux(PORTD, 3, kPORT_MuxAlt3);
- /* 获取 UART初始配置. */
- UART_GetDefaultConfig(&uart_config);
-
- /* 设置 UART波特率. */
- uart_config.baudRate_Bps = 115200;
-
- /* 使能 UART收发. */
- uart_config.enableTx = true;
- uart_config.enableRx = true;
- /* UART初始化. */
- UART_Init(DEMO_UART, &uart_config, CLOCK_GetFreq(DEMO_UART_CLKSRC));
-
- while (1)
- {
- /* 接收串口数据存放在 buffer中. */
- UART_ReadBlocking(DEMO_UART, &buffer, 1);
-
- /* 将 buffer中的数据通过串口发送出去. */
- UART_WriteBlocking(DEMO_UART, &buffer, 1);
- }
- }
-
复制代码
演示视频:
|