NRF51822开发笔记-9.nRF51822的GPIO结构1
一、GPIO设计思路
1.在NRF51822规格书中相关的GPIO章节,从如下图中可以看到,有32的GPIO,编号0-31,每个GPIO都有OUT/IN/PIN_CNF[],左侧是GPIO内部的结构,学过STM32的都了解,和STM32类似。
2.GPIO的配置无非也是配置上拉,下拉,驱动能力等等,根据自己使用的GPIO的实际情况去配置相关的寄存器
二、程序配置解析
1.GPIO初始化函数解析
在main函数中,通常先要初始化函数,比如控制LED的实验中的初始化函数为nrf_gpio_cfg_output(LED_0);找到对应的函数体
static __INLINE void nrf_gpio_cfg_output(uint32_t pin_number)
{
/*lint -e{845} // A zero has been given as right argument to operator '|'" */
NRF_GPIO->PIN_CNF[pin_number] =
(GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos)
| (GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos)
| (GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos)
| (GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INP