查看: 4367|回复: 4

[分享] 基于LPC824的串行通信及闪灯效果

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
    发表于 2016-10-22 12:51:26 | 显示全部楼层 |阅读模式
    LPC824开发板未配置相应的人际交互手段的情况下,使用其自身的虚拟串口通讯功能就成为一个必要的选项。那如何来测试和使用虚拟串口的通讯功能呢?
    ametal_am824_core_1.02的例程中就有这样的程序,启动工程文件
    examples_led/demo_std_led/demo_std_led.uvprojx即可。
    主程序的代码为:
    1. #include "ametal.h"
    2. #include "am_vdebug.h"
    3. #include "am_led.h"
    4. #include "am_delay.h"
    5. #include "am_lpc82x_inst_init.h"
    6. extern void demo_std_led_entry(void);
    7. int am_main (void)
    8. {
    9.     AM_DBG_INFO("Start up successful!\r\n");
    10.     demo_std_led_entry();
    11. while (1)
    12. {
    13.         am_mdelay(100);
    14.     }
    15. }
    复制代码
    经编译下载,可通过串口助手来观察执行效果,参见图1
    图片1.png
    1 通讯效果
    若细心看主程序的话,你会发现它是伴有一个指示灯闪动效果的,但却没出现。
    追踪函数demo_std_led_entry(),会发现它存于程序demo_std_led.c ,其内容为:
    1. demo_std_led.c    // LED以0.3s时间间隔闪烁,PIO0_20控制LED0
    2. void demo_std_led_entry (void)
    3. {

    4.     while (1) {
    5.         am_led_on(LED0);
    6.         am_mdelay(300);
    7.         am_led_off(LED0);
    8.         am_mdelay(300);
    9.     }
    10. }
    复制代码
    LED0又是在何处定义的?继续追踪可以找到它在文件am_board.h中,其内容为:
    #define LED0          0
    #define LED1          1
    而它的引用位置则在文件am_board.c中,内容为:
    const am_led_info_t g_led_info[] = {
        {PIO0_20, TRUE},
        {PIO0_21, TRUE},
    };
    原来它驱动的是引脚PIO0_20,而板上LED的引脚分别是PIO0_15~PIO0_17
    图片2.png
    1  LED灯线路
    将它改为:
    const am_led_info_t g_led_info[] = {
         {PIO0_15, TRUE},
         {PIO0_16, TRUE},
    };
    则可获得红灯的闪烁效果,为使红灯和绿灯同时闪烁,需修改void demo_std_led_entry (void)
    函数,将其改为:
    1. void demo_std_led_entry (void)
    2. {

    3.     while (1) {
    4.         am_led_on(LED0);
    5.                 am_led_on(LED1);
    6.         am_mdelay(300);
    7.         am_led_off(LED0);
    8.                 am_led_off(LED1);
    9.         am_mdelay(300);
    10.     }
    11. }
    复制代码
    若想红绿蓝3灯同时闪烁,则要改为:
    #define LED0          0
    #define LED1          1
    #define LED2          2
    而它的引用位置则在文件am_board.c中,内容为:
    1. const am_led_info_t g_led_info[] = {
    2.      {PIO0_15, TRUE},
    3.      {PIO0_16, TRUE},
    4.      {PIO0_17, TRUE},
    5. };

    6. void demo_std_led_entry (void)
    7. {
    8. while (1) {
    9.         am_led_on(LED0);
    10.                 am_led_on(LED1);
    11.         am_led_on(LED2);
    12.         am_mdelay(300);
    13.         am_led_off(LED0);
    14.                 am_led_off(LED1);
    15.         am_led_off(LED2);
    16.         am_mdelay(300);
    17.     }
    18. }
    复制代码
    由此看见,读懂程序并将程序改为所需的功能还是很锻炼功力的。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
    发表于 2016-10-22 13:53:23 | 显示全部楼层
    多谢分享,很详细
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-6 16:47
  • 签到天数: 27 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    2

    主题

    318

    帖子

    0

    高级会员

    Rank: 4

    积分
    759
    最后登录
    2018-2-24
    发表于 2016-10-22 23:11:25 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-11 21:48
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    162

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    376
    最后登录
    2016-11-12
    发表于 2016-10-23 11:08:19 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-13 07:08
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    1

    主题

    264

    帖子

    0

    高级会员

    Rank: 4

    积分
    596
    最后登录
    2017-8-24
    发表于 2016-10-23 13:16:44 | 显示全部楼层
    谢谢分享,真的详细。
    来签到,来签到,早上好!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 03:29 , Processed in 0.092660 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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