5252|8

305

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

NXP LPC1768宝马开发板 第一章GPIO实验 [复制链接]

第一章    NXP LPC1768—— GPIO

开发环境:集成开发环境μVision4 IDE版本4.60.0.0
主机系统:Microsoft Windows XP
开发平台:旺宝NXP LPC1768开发板

1.1 GPIO简介
1.2 硬件描述
1.3 程序说明
1.4 实验现象

1GPIO
GPIOGeneral Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读出引脚的状态-是高电平或是低电平。GPIO 口是个比较重要的概念,用户可以通过 GPIO 口和硬件进行数据交互(UART),控制硬件工作(LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。因此,GPIO 口的使用非常广泛。
2硬件描述:
      
  

想要控制LED,当然是通过控制LPC1768  I/0的高低电平来实现,在LPC1768上,I/O引脚可以被软件设置成不同的功能,如输入或输出,所以被称为GPIO (General-purpose I/O)。在本实验中,主要是用GPIO来控制开发板上的LED,实现跑马灯的效果。注意要短接JP8
3、程序说明:
我们先来简单了解一下系统时钟分频倍频。假如我们要得到PLL0=400MHz的时钟,计算公式如下:
        FCCO=2×M×FIN/ N
PLL输入和设定必须满足下面的条件:
1) FIN的范围:32KHz~50MHz
2) FCCO的范围:275MHz~550MHz
可通过求解PLL等式来得到其它的PLL参数:
M =FCCO×N/2×FIN
N =2×M×FIN/ FCCO
FIN=FCCO×N/2×M
这里FIN=12FCCO=400。由此可计算M=100N=6PLL0CFG寄存器包含PLL0倍频器和分频器值,我们往这个寄存器写值来实现分频与倍频

上面我们算得M=100N=6,把他们分别减一,换算成16进制
      #define PLL0CFG_Val           0x00050063

接下来就可以配置我们的CPU时钟了,PLL0输出时钟必须要经过分频才能
提供给CPU使用,PLL0输出的分频由CCLKCFG寄存器进行控制。当PLL0被旁路时,可通过1分频。当PLL0正在运行时,输出必须经过分频以使CPU时钟频率(CCLK)工作在限定的范围内。可使用一个8位分频器进行选择,包括降低CPU的操作频率来暂时节省功耗而无需关闭PLL0

  CCLKPLL0输出信号中得到,通过CCLKSEL+1分频。当CCLKSEL1时,CCLK的频率是PLL0输出频率的一半;当CCLKSEL3时,CCLK的频率是PLL0输出频率的四分之一,如此类推。这里我们把它设置成
#define CCLKCFG_Val           0x00000007
CCLK的频率 = PLL0输出频率的八分之一 =50MHz

现在我们一步一步来点亮LED

在端口配置的函数里面,有两个重要寄存器,FIODIRFIOPIN


我们从这张表可以看到,要把某个端口方向设置成输出,只需把FIODIR这个寄存器的某个位写1即可。根据手册说明,除了32位长和仅可以进行字访问的FIODIR寄存器外,每个高速GPIO口也可通过一些字节和半字访问的寄存器来控制。这些额外的寄存器除了提供与FIODIR寄存器相同的功能外,还可以更容易、更高速地访问物理端口引脚。比如LPC_GPIO2->FIODIR  = 0x000000ff;  我们也可以写成LPC_GPIO2->FIODIR0  = 0xff;
  
   设置好方向之后,即可按我们自己的要求输出高低电平来实现我们当初设计的功能。
   细心的你一定发现了,在void  LED_config(void)这个函数里,有配置GPIO0的语句。奇怪啊!LED没有接在GPIO0IO口啊。通过计算我们可以知道这两句配置的是P0.21这个IO口。打开我们的原理图,可以看到P0.21接到了SN74ALVC164245DIR这个端口,74ALVC164245 双电源供电,实现3.3V5V电平转换,宝马1768的板子没有用5VIO,所以电源都接3v3,其中DIR控制传输方向,DIR高电平 A to B ;DIR低电平 B TO A
  
我们把DIR拉高,数据的传输方向是A to B,目的是防止数据被意外干扰。
   

4、实验现象:

把程序下载到板子上,程序运行后,可以看到LED从左到右,然后从右到左流动,流到最左边时LED全亮,最后全灭,以此循环。



例程附件可以到这个帖子下载:在这里就不在上传了
https://bbs.eeworld.com.cn/thread-453270-1-1.html

此帖出自NXP MCU论坛

最新回复

具体的延时时间是怎么计算的     详情 回复 发表于 2022-11-26 23:50

赞赏

2

查看全部赞赏

点赞 关注
个人签名http://openmcu.taobao.com]77[/url]
 

回复
举报

8

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
都是用函数来执行的
此帖出自NXP MCU论坛
 
 
 

回复

1119

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
过来看看~~~~~~~~~~~~~~~~~
此帖出自NXP MCU论坛

点评

谢谢支持  详情 回复 发表于 2015-1-16 09:38
 
 
 

回复

3414

帖子

0

TA的资源

纯净的硅(高级)

4
 
楼主是要出全套教程吗,顶一个
此帖出自NXP MCU论坛

点评

嗯,先第一章,再来个第二章  详情 回复 发表于 2015-1-16 09:37
 
个人签名

So TM what......?

 

 

回复

305

帖子

0

TA的资源

一粒金砂(高级)

5
 
ljj3166 发表于 2015-1-15 16:03
楼主是要出全套教程吗,顶一个



嗯,先第一章,再来个第二章
此帖出自NXP MCU论坛
 
个人签名http://openmcu.taobao.com]77[/url]
 
 

回复

305

帖子

0

TA的资源

一粒金砂(高级)

6
 
kemasz 发表于 2015-1-15 16:01
过来看看~~~~~~~~~~~~~~~~~



谢谢支持
此帖出自NXP MCU论坛
 
个人签名http://openmcu.taobao.com]77[/url]
 
 

回复

4997

帖子

19

TA的资源

裸片初长成(初级)

7
 
感谢分享啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
此帖出自NXP MCU论坛
 
个人签名我的博客
 
 

回复

305

帖子

0

TA的资源

一粒金砂(高级)

8
 

配套书本目录附上:



lab 1.开发环境和开发工具

lab 2.GPIO和LED控制
lab 3.键盘与中断
lab 4.串口通信
lab 5.利用UART实现调度台
lab 6.定时器与计数器
lab 7.五向键与有限状态机
lab 8.实时时钟
lab 9.I2C接口与设备
lab 10.LCD控制器与LCD显示
lab 11.模数转换实验
lab 12.数模转换实验




此帖出自NXP MCU论坛
 
个人签名http://openmcu.taobao.com]77[/url]
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

9
 

具体的延时时间是怎么计算的

 

此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表