查看: 3754|回复: 0

[原创] [LPC11U68开发板]-2.demo_blink的代码学习

[复制链接]
  • TA的每日心情
    开心
    2019-2-22 14:14
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    2

    主题

    57

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    225
    最后登录
    2019-2-22
    发表于 2018-11-17 16:26:04 | 显示全部楼层 |阅读模式
    本帖最后由 chrisrh 于 2018-11-17 16:25 编辑


    下载demo例程进行学习

    从main函数开始往下看,头文件#include "board.h"-->go to进去,发现里面包含的还有一个头文件#include "chip.h"
    在#include "chip.h"里面包含了各个寄存器的地址和各外设驱动的头文件...

    接着往下#if...#elif...#else...#endif,
    board.h中    /* Board name */    #define BOARD_NXP_LPCXPRESSO_11U68
    so...
    /* This is SW1.  Press this to blink just the RED LED. */按键1按下只亮红灯
    /* This is SW2.  Press this to cycle through all LEDs.. */按键2按下三色循环
    头文件.png
    boardname.png
    SW1与SW2.png

    通过嵌套cnt计数使三色LED循环点亮,Board_LED_Set点亮对应的LED,0红灯,1绿灯,2蓝灯,
    并宏定义了最多LED数#define MAXLEDS   3,防写错:

    cnt.png
    Board_LED_Set的定义
    Board_LED_Set.png

    来到main()主函数...紧随其后的是各种初始化定义,
    demo主要是blinky example,是个闪烁程序
    在头文件“stdbool.h”中定义了true,false,bool~

    bool.png

    接着来到while(1){...}主循环,通过标志位ledCnt来判断处于循环状态还是闪烁状态,其中
    Chip_GPIO_GetPinState在头文件"gpio_11u6x.h"中被定义,用法如下:
    while.png
    Chip_GPIO_GetPinState的用法,返回是个布尔型
    GetPinState.png
    中断等待字符
    __WFI.png

    而哪个灯闪烁和闪烁的频率是在main的RTC Interrupt Handler和初始化程序中,如下:

    #define TICKRATE_HZ1   (10)        /* 10 ticks per second */

    if (ledCnt == false) {        Board_LED_Toggle(0);  }               

    /* Enable and setup SysTick Timer at a periodic rate */     

    SysTick_Config(SystemCoreClock / TICKRATE_HZ1 / 30);   

    通过debug调试可以准确的看到SystemCoreClock是48M即48000000,具体晶振几倍频,PLL代码在“chip_11u6x.c”中,通过改变TICKRATE_HZ1 即可调节blink的闪烁频率,如下图:

    led.png

    修改,编译,下载,led代码学习完毕,接着学习下一部分的代码!

    demo_blink.zip

    4.19 MB, 下载次数: 6, 下载积分: 威望 1

    今天天气不错!签到!
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-31 06:35 , Processed in 0.086807 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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