In my board nRF52833,output voltage level is by default 3.0V but I want to change it 3.3.
I used UICR Registers via below code but i wasnt change
#include <stdio.h>
#include <stdlib.h>
#include <nrf.h>
#include "nrf_gpio.h"
#include "nrf_timer.h"
void gpio_output_voltage_setup(void);
void main(void) {
SystemInit();
gpio_output_voltage_setup();
while (1) {
__WFI(); //wait for interrupt
}
}
void gpio_output_voltage_setup(void)
{
// Configure UICR_REGOUT0 register only if it is set to default value.
if ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) != (UICR_REGOUT0_VOUT_3V3 << UICR_REGOUT0_VOUT_Pos))
{
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
NRF_UICR->REGOUT0 = (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) | (UICR_REGOUT0_VOUT_3V3 << UICR_REGOUT0_VOUT_Pos);
NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren;
while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
// System reset is needed to update UICR registers.
NVIC_SystemReset();
NRF_UICR->REGOUT0
}
}