请选择 进入手机版 | 继续访问电脑版
查看: 1782|回复: 3

[原创] NXP MAPS-KL43 UART快速上手

[复制链接]

该用户从未签到

22

主题

47

帖子

0

中级会员

Rank: 3Rank: 3

积分
243
最后登录
2024-1-9
发表于 2016-5-12 12:59:38 | 显示全部楼层 |阅读模式
本帖最后由 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开发套件:
  
串口UART2 收发测试.jpg
  
原理图:
  
2-1.png

源码:
  1.   
  2. #include "board.h"
  3. #include "clock_config.h"
  4. #include "fsl_common.h"
  5. #include "fsl_uart.h"
  6. #include "fsl_port.h"
  7. #include "pin_mux.h"


  8. /*******************************************************************************
  9. * Definitions
  10. ******************************************************************************/
  11. #define DEMO_UART UART2
  12. #define DEMO_UART_CLKSRC kCLOCK_BusClk


  13. /*******************************************************************************
  14. * Main
  15. ******************************************************************************/
  16. int main(void)
  17. {
  18.     uint8_t buffer;
  19.         
  20.     /* 定义串口配置结构体. */
  21.     uart_config_t uart_config;

  22.     /* 初始化系统时钟. */
  23.     BOARD_BootClockRUN();
  24.         
  25.     /* 使能UART GPIO时钟. */
  26.     CLOCK_EnableClock(kCLOCK_PortD);
  27.         
  28.     /* 配置UART GPIO 复合端口. */
  29.     PORT_SetPinMux(PORTD, 2, kPORT_MuxAlt3);
  30.     PORT_SetPinMux(PORTD, 3, kPORT_MuxAlt3);

  31.     /* 获取 UART初始配置. */
  32.     UART_GetDefaultConfig(&uart_config);
  33.         
  34.     /* 设置 UART波特率. */         
  35.     uart_config.baudRate_Bps = 115200;
  36.         
  37.     /* 使能 UART收发. */         
  38.     uart_config.enableTx = true;
  39.     uart_config.enableRx = true;

  40.     /* UART初始化. */         
  41.     UART_Init(DEMO_UART, &uart_config, CLOCK_GetFreq(DEMO_UART_CLKSRC));

  42.         
  43.     while (1)
  44.     {
  45.          /* 接收串口数据存放在 buffer中. */
  46.         UART_ReadBlocking(DEMO_UART, &buffer, 1);
  47.                
  48.          /* 将 buffer中的数据通过串口发送出去. */
  49.         UART_WriteBlocking(DEMO_UART, &buffer, 1);
  50.     }
  51. }
  52.   
复制代码

演示视频:

串口UART2 收发测试.gif

回复

使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-5-12 13:15:13 | 显示全部楼层
    不错,期待后续的作品
    签到 签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-17 08:07
  • 签到天数: 273 天

    [LV.8]以坛为家I

    74

    主题

    2338

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7331
    最后登录
    2021-8-30
    发表于 2016-5-31 10:25:33 | 显示全部楼层
    期待更好的作品
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-5-31 13:27:59 | 显示全部楼层
    666,那张动态的图怎么弄得?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-28 22:41 , Processed in 0.133312 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表