本帖最后由 汉云 于 2017-3-25 14:37 编辑
GPIO是芯片使用过程中最基本的一个模块。
从我们上次使用的例程中看一下。首先对GPIO
模块的复位,时钟使用。使用如下函数。GPIOInit();
此函数是在peripherals_lib
中,若是以库的形式进行添加的,是找不到源码的,要去目录中打开lpc8xx_gpio.c
文件进行查看。源码如下:
void GPIOInit( void )
{
/* Enable AHB clock to the GPIO domain. */
LPC_SYSCON->SYSAHBCLKCTRL |= GPIO;
/* Peripheral reset to the GPIO module. '0' asserts, '1' deasserts reset. */
LPC_SYSCON->PRESETCTRL &= GPIO_RST_N;
LPC_SYSCON->PRESETCTRL |= ~GPIO_RST_N;
return;
}
GPIO
是一个宏定义。
其基本含义,在SYSAHBCLKCTRL
寄存器中,即是使能是GPIO
的时钟。
对于GPIO_RST_N
宏定义。
PRESETCTRL
寄存器中第10
位,对GPIO
模块进行复位操作。
Config_LEDs
函数是在utilities_lib
中的utilities_lib.c
中的函数。
void Config_LEDs(uint32_t bits) {
LPC_GPIO_PORT->SET0 = bits; // Write '1's to bits corresponding to requested LEDs
LPC_GPIO_PORT->DIR0 |= bits; // Make those bits outputs
}
置位寄存器
GPIO
口输入输出寄存器配置
此函数在调用时传递的参数宏定义为:
这个与我们的开发板是不同的,后续要更改为与我们的开发板一样的。
本帖最后由 汉云 于 2017-3-25 14:37 编辑
GPIO是芯片使用过程中最基本的一个模块。
从我们上次使用的例程中看一下。首先对GPIO
模块的复位,时钟使用。使用如下函数。GPIOInit();
此函数是在peripherals_lib
中,若是以库的形式进行添加的,是找不到源码的,要去目录中打开lpc8xx_gpio.c
文件进行查看。源码如下:
void GPIOInit( void )
{
/* Enable AHB clock to the GPIO domain. */
LPC_SYSCON->SYSAHBCLKCTRL |= GPIO;
/* Peripheral reset to the GPIO module. '0' asserts, '1' deasserts reset. */
LPC_SYSCON->PRESETCTRL &= GPIO_RST_N;
LPC_SYSCON->PRESETCTRL |= ~GPIO_RST_N;
return;
}
GPIO
是一个宏定义。
其基本含义,在SYSAHBCLKCTRL
寄存器中,即是使能是GPIO
的时钟。
对于GPIO_RST_N
宏定义。
PRESETCTRL
寄存器中第10
位,对GPIO
模块进行复位操作。
Config_LEDs
函数是在utilities_lib
中的utilities_lib.c
中的函数。
void Config_LEDs(uint32_t bits) {
LPC_GPIO_PORT->SET0 = bits; // Write '1's to bits corresponding to requested LEDs
LPC_GPIO_PORT->DIR0 |= bits; // Make those bits outputs
}
置位寄存器
GPIO
口输入输出寄存器配置
此函数在调用时传递的参数宏定义为:
这个与我们的开发板是不同的,后续要更改为与我们的开发板一样的。