Recently I was attempting to use the nrf51822 SDK's app_uart module's APP_UART_FLOW_CONTROL_LOW_POWER
mode (currently using APP_UART_FLOW_CONTROL_ENABLED
). I noticed that when I called app_uart_init
all my LEDs came on. On investigation I noticed that in this block of code:
// Configure hardware flow control.
nrf_gpio_cfg_output(p_comm_params->rts_pin_no);
NRF_GPIO->OUT = 1 << p_comm_params->rts_pin_no;
the OUT
should be OUTSET
, otherwise it sets all pins to 0 except RTS (and sets RTS high or disabled as intended). Perhaps this wasn't caught if the UART was initialized early and subsequent code configured other pins correctly before them being cleared was a problem? I am using SDK 6.0.0 but the issue is present in 6.1.0.