查看: 1244|回复: 0

[原创] 【MCX-A153分享】3.LPUART中断测试

[复制链接]
  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    110

    主题

    3404

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    9002
    最后登录
    2025-7-17
    发表于 2024-7-10 21:21:19 | 显示全部楼层 |阅读模式
    仔细看A153的Datasheet,发现这款MCU的低功耗外设还是挺丰富的,主打一个工控消费应用。这次测试一下基本的LPUART通信。打开原理图,找到外部接口,如图1所示:
    2-3.JPG
    图1:
    连接好外部通讯线,如图2所示:
    2-5.jpg
    图2

    下边就是编写软件。因为原理图中是LPUART2,所以需要在IDE的Config tools中修改一下,增加LPUART2外设,如图3所示:
    2-4.JPG
    图3

    增加LPUART2的时钟,如图4所示:
    2-6.JPG
    图4
    LPUART2的基本配置如图5所示:
    2-7.JPG
    图5

    然后点击更新代码。回到程序中,需要修改一下宏定义,添加uitck函数,如下所示:
    1. #define DEMO_LPUART            LPUART2
    2. #define DEMO_LPUART_CLK_FREQ   (LPUART2_CLOCK_SOURCE)
    3. #define DEMO_LPUART_IRQn       LPUART2_IRQn
    4. #define DEMO_LPUART_IRQHandler LPUART2_IRQHandler

    5. /*! @brief Ring buffer size (Unit: Byte). */
    6. #define EXAMPLE_UTICK UTICK0
    7. #define UTICK_TIME_1S (1000000UL)
    复制代码


    我们要测试每1S发送一次数据,并接收中断,需要程序中简单修改一下:
    1. void DEMO_LPUART_IRQHandler(void)
    2. {
    3.    static uint8_t data;

    4.     /* If new data arrived. */
    5.     if ((kLPUART_RxDataRegFullFlag)&LPUART_GetStatusFlags(DEMO_LPUART))
    6.     {
    7.         Rx[data++] = LPUART_ReadByte(DEMO_LPUART);
    8.         if(data>=4)
    9.         {
    10.                 data =0;
    11.         }

    12.     }
    13.     SDK_ISR_EXIT_BARRIER;
    14. }
    复制代码
    1.       UTickDelay(UTICK_TIME_1S);
    2.              LPUART_WriteBlocking(DEMO_LPUART,Tx,4);
    复制代码


    编译无错误后,打开串口助手,debug,查看功能是否完成,是否成功发送数据和接收数据,测试结果如图6和图7所示:
    2-1.JPG
    图6
    2-2.JPG
    图7
    基本完成了设想的功能,后面继续测试。
    加油哦
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 18:28 , Processed in 0.089515 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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