1. P0.09/ P0.10的默認(rèn)配置
nRF52832的P0.09,P0.10引腳除了GPIO還可以被用作NFC天線,在SDK的默認(rèn)配置中為NFC天線引腳,發(fā)現(xiàn)配置稱ouput不正常工作。發(fā)現(xiàn)在system_rf52.c中有段代碼將其配置稱了默認(rèn)的NFC功能。
/* 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
注釋掉該段代碼或者在適當(dāng)?shù)牡胤皆黾覥ONFIG_NFCT_PINS_AS_GPIOS 的定義即可。
#define CONFIG_NFCT_PINS_AS_GPIOS 1
(2020/2/26日記)
2. 廣播時(shí)間設(shè)置
默認(rèn)的廣播事件為3分鐘, 在 advertising_init中,將flags從BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE改為BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE,并修改APP_ADV_DURATION 為自己所需的時(shí)間,如果APP_ADV_DURATION 設(shè)置成0,則永遠(yuǎn)廣播。
#define APP_ADV_DURATION 18000 /**< The advertising duration (180 seconds) in units of 10 milliseconds. */
static void advertising_init(void)
{
...
init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE;
...
init.config.ble_adv_fast_timeout = APP_ADV_DURATION;
}
3. Jlink ARM.DLL返回錯(cuò)誤
按照大家的建議:
2.檢查 jflash的序列號(hào):https://blog.csdn.net/sinat_33323544/article/details/81082280
發(fā)現(xiàn)都沒有問(wèn)題,最后排查下來(lái),發(fā)現(xiàn)jlink的3.3V供電電和reset都接了,把這兩個(gè)pin連接斷開開,采用外部供電就好了。