NRF52 UICR寄存器读写

通常NRF52系列芯片的UICR寄存器可以保存一些重要的用户数据,而写到此寄存器的数据掉电后是不会丢失的, 读写此寄存器的方法如下:

写入方法1:

const uint32_t UICR_ADDR_0x80 __attribute__((at(0x10001080))) __attribute__((used)) = 0x12345678;

const uint32_t UICR_ADDR_0x84 __attribute__((at(0x10001084))) __attribute__((used)) = 0xAAAAAAAA;

const uint32_t UICR_ADDR_0x88 __attribute__((at(0x10001088))) __attribute__((used)) = 0x55555555;

const uint32_t UICR_ADDR_0x8C __attribute__((at(0x1000108C))) __attribute__((used)) = 0x33333333;

写入方法2:

static void uict_write_test(void)

{

       NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen;

       while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

       for(uint8_t i=0;i<32;i++)NRF_UICR->CUSTOMER[i] = 0x33445566;

       NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren;

       while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

}

此函数需放在softdevice 初始化之前调用,读出时也一样。

还可以通过nrfjprog命令写入/读出数据 ,看看写入的数是否正确,命令如下:

猜你喜欢

转载自www.cnblogs.com/lim11/p/11134885.html