在线时间74 小时
UID3323317
注册时间2016-10-25
NXP金币134
TA的每日心情 | 慵懒 2019-7-22 13:56 |
---|
签到天数: 38 天 连续签到: 1 天 [LV.5]常住居民I
金牌会员
 
- 积分
- 1834
- 最后登录
- 2020-10-13
|
本帖最后由 邹姆斯特朗 于 2016-11-15 16:41 编辑
软件平台:keil5.14
硬件平台:LPC824Lite
目的:刚学完51,通过LPC824这款片子,逐步学习Cortex M系列内核MCU。新手,一步一个脚印。
STC89C51
在51单片机中IO口的操作是比较简单的,一行代码,即可完成IO输出高低电平以及电平状态读取,例如:
P1^0 = 1;
Val = P1^0;
LPC824
在LPC824中,要完成对IO口的操作,就显得没这么简单了。即使是要通过IO口来点亮一个led灯,也是需要进行不少的设置。咱先一步一来,慢慢学习LPC824这款片子。首先看看工程的一个大体框架:
如果要利用824的一个IO来点亮一个点灯,我们应该怎么做?分三步走:
1、初始化GPIO外设模块:要使用一个模块,就得先把他叫醒,使能他的时钟相当于要一个电器工作先得给他供上电源。
2、设置引脚的方向:确定好引脚是输入引脚还是输出引脚,因为要点亮一个灯,是输出信号,所以我们应该设置方向为输出(如果是读取按键,应该是输入模式)。
3、设置引脚电平状态:确定输出电平高还是低(1或0)。
函数三个,可在"gpio_8xx.h"找到:
Chip_GPIO_Init(LPC_GPIO_T *pGPIO);
Chip_GPIO_PinSetDIR(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pin, bool isOutput);
Chip_GPIO_PinSetState(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pin, bool setting);
- /**
- * @brief 设置单个GPIO引脚的方向
- * @param pGPIO : 片上GPIO外设的基地址
- * @param port : GPIO端口设置(只支持0端口)
- * @param pin : 引脚号
- * @param isOutput: true 是 输出, false 是 输入
- * @return Nothing
- */
- void Chip_GPIO_PinSetDIR(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pin, bool isOutput)
复制代码
另外,引脚方向设置成输出时可以输出高低电平,引脚方向设置成输入时可以读取电平状态:
Chip_GPIO_PinGetState(LPC_GPIO_T *pGPIO, uint8_t port, uint8_t pin);
- /******************** Copyright(C) 2016, Lab1209 of UJN **********************
- * 文件名 :main.c
- * 描述 :GPIO实验
- *
- * 软件平台 :Keil5.14
- * 硬件平台 :LPC824
- *
- * 作者 :邹姆斯特朗
- * 修改时间 :2016/11/12
- * 补充 :
- ******************************************************************************/
- #include "peri_driver.h"
- #define IN 0
- #define OUT 1
- #define LOW 0
- #define HIGH 1
- int main(void)
- {
- bool F;
-
- Chip_GPIO_Init(LPC_GPIO_PORT); //初始化GPIO外设
- Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 1, IN); //设置0.1脚方向为输入
- Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 17, OUT); //设置0.17脚方向为出
复制代码 第一个工程:
LPC824.zip
(209.41 KB, 下载次数: 56)
|
|