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

[分享] NXP Cortex-M3 LPC1768基础教程(四)

[复制链接]
  • TA的每日心情
    难过
    2023-9-6 15:15
  • 签到天数: 211 天

    [LV.7]常住居民III

    34

    主题

    805

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2033
    最后登录
    2024-3-21
    发表于 2019-12-23 14:21:28 | 显示全部楼层 |阅读模式
    LPC1768 LED跑马灯
    这篇将详细介绍立足于本设计的最小系统板的实例编程。在这里从最简单的编程开始,尽量拥有详尽的注释,尽量做到功能结构完整,

    使用连接在P2 口上的4 个LED 灯实现跑马灯的效果。由于LED是采用管电流方式设计的,所以当P2.0 输出低电平时第一个LED 灯亮。设计的编程有系统初始化、通用IO 口的初始化、系统软延时和通用IO 口的输出等。首先建立一个工程并且设置好工程。在Project 里面新建一个组,命名为Source(本实验的所有代码、包括头文件都放在这里),新建一个main.c 文件,添加进Source 组。在main.c 中添加如下代码:
    #include "lpc17xx.h" // 包含头文件,头文件内保护系统初始化头文件
    void delay(void)
    //软延时函数,大工程中不建议使用,占用系统资源,
    { //M3 有系统节拍定时器,可以达到效果
    uint32_t j;
    for(j = 3000000; j > 0; j--);
    }
    int main(void)
    {
    uint32_t i=0; //定义变量
    SystemInit(); //系统初始化函数
    LPC_SC->PCONP|=(1<<15);
    //功耗控制,此处可以注释掉,因为复位后GPIO 默认开启
    LPC_GPIO2->FIODIR=0x0000000F; //FIODIR 设置端口的输入输出
    LPC_GPIO2->FIOSET=0x0000000F;
    //GPIO 置位,当某位为1 则置位,为0 不变
    while(1)
    {
    for(i = 0; i < 4; i++)
    {
    LPC_GPIO2->FIOCLR = 1 << i;
    //GPIO 清零,为1 清零,为0 不变
    delay();
    }
    LPC_GPIO2->FIOSET=0x0000000F;
    delay();
    }
    }
    配置keil 工程的选项,选择生成HEX,配置仿真器jlink。在Source 组里添加system_LPC17xx.c和core_cm3.c(由于系统初始化函数在system_LPC17xx.c中定义,要调用该函数则要访问system_LPC17xx.c,访问方式有2 中一是工程中调用该文件对应的.h文件然后在工程中添加.c 文件,二是在工程中将.h 和.c 文件都调用)。
    编译,没有错误,下载到目标板上,可以看出4 个LED 灯依次被点亮,然后熄灭,然后接着被依次点亮,循环。在程序中所偶寄存器的访问都是基于结构体的,如FIODIR 是GPIO 的输入输出配置寄存器,访问的时候要按结构体方式访问,若要访问P1 口则有LPC_GPIO1->FIODIR=0x00000000;由于PCONP 在LPC_SC 结构体定义的所以访问时需要LPC_SC->PCONP;结构体的定义都是按照功能定义在LPC17xx.h 里的,不明白的查看一下。
    注:需要将LED 闪烁改成一个LED 依次点亮,可以将:
    LPC_GPIO2->FIOCLR = 1 << i;
    修改成:
    LPC_GPIO2->FIOPIN =~( 1 << i);
    下面介绍一下通用GPIO 的有关寄存器和中断寄存器映射表:
    123.png

    中断寄存器映射表
    123-1.png

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-5-11 17:59
  • 签到天数: 33 天

    [LV.5]常住居民I

    16

    主题

    396

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1381
    最后登录
    2023-9-15
    发表于 2019-12-23 19:56:22 | 显示全部楼层
    强强强
    今天好忙啊
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-19 10:12 , Processed in 0.108682 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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