|
发表于 2018-12-11 09:00:43
|
显示全部楼层
引脚配置最终是使用nrf_gpio_cfg()函数完成配置的,nrf_gpio_cfg()是函数,不是结构体。nrf_gpio_cfg()函数在“nrf_gpio.h”文件中,代码如下:- __STATIC_INLINE void nrf_gpio_cfg(
- uint32_t pin_number,
- nrf_gpio_pin_dir_t dir,
- nrf_gpio_pin_input_t input,
- nrf_gpio_pin_pull_t pull,
- nrf_gpio_pin_drive_t drive,
- nrf_gpio_pin_sense_t sense)
- {
- NRF_GPIO_Type * reg = nrf_gpio_pin_port_decode(&pin_number);
- reg->PIN_CNF[pin_number] = ((uint32_t)dir << GPIO_PIN_CNF_DIR_Pos) //设置引脚方向
- | ((uint32_t)input << GPIO_PIN_CNF_INPUT_Pos) //设置是否连接输入缓冲器
- | ((uint32_t)pull << GPIO_PIN_CNF_PULL_Pos) //设备引脚上拉/下拉电阻
- | ((uint32_t)drive << GPIO_PIN_CNF_DRIVE_Pos) //设置引脚驱动能力
- | ((uint32_t)sense << GPIO_PIN_CNF_SENSE_Pos);//设置引脚感知功能
- }
复制代码 可以看到,该函数内部是通过PIN_CNF寄存器配置PIN的。
|
|