nrf52832的p09,p10 配置为 普通的gpio口
nrf52832的p09,p10引腳被默認配置為nfc天線引腳,如果想配置為gio口,首先來先看下
system_nrf52.c
? ? /* Configure NFCT pins as GPIOs if NFCT is not to be used in your code. If CONFIG_NFCT_PINS_AS_GPIOS is not defined,
? ? ? ?two GPIOs (see Product Specification to see which ones) will be reserved for NFC and will not be available as
? ? ? ?normal GPIOs. */
? ? #if defined (CONFIG_NFCT_PINS_AS_GPIOS)
? ? ? ? if ((NRF_UICR->NFCPINS & UICR_NFCPINS_PROTECT_Msk) == (UICR_NFCPINS_PROTECT_NFC << UICR_NFCPINS_PROTECT_Pos)){
? ? ? ? ? ? NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
? ? ? ? ? ? while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
? ? ? ? ? ? NRF_UICR->NFCPINS &= ~UICR_NFCPINS_PROTECT_Msk;
? ? ? ? ? ? while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
? ? ? ? ? ? NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
? ? ? ? ? ? while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
? ? ? ? ? ? NVIC_SystemReset();
? ? ? ? }
? ? #endif
默認是nfc功能,所以必須添加宏定義,可以定義在system_nrf52.h文件 ?#define CONFIG_NFCT_PINS_AS_GPIOS
程序要包含 nrf52.h , system_nrf52.h 兩個頭文件,
初始化的時候 配置NRF_UICR->NFCPINS = 0
void drv_button_init(void)
{NRF_UICR->NFCPINS = 0;nrf_gpio_cfg_input(BUTTON_1,NRF_GPIO_PIN_NOPULL);nrf_gpio_cfg_input(BUTTON_2,NRF_GPIO_PIN_NOPULL);
}
unsigned char drv_get_button_key(void)
{unsigned char result = 0;if (!nrf_gpio_pin_read(BUTTON_1))result |= 0x01;if (!nrf_gpio_pin_read(BUTTON_2))result |= 0x02;return result;
}
---------------------?
作者:guanyyu?
來源:CSDN?
原文:https://blog.csdn.net/guanyyu/article/details/53228342?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的nrf52832的p09,p10 配置为 普通的gpio口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nrf52832 之 gpio配置方法
- 下一篇: nRF52832的UICR