Hello,
I am new to the nordic family. I am trying to bring up the UART1 in 9160 DK but it's not working. The same code works for UART0 appropriately.
void my_Usart1_init(void)
{
/* GPIO init */
nrf_gpio_cfg_default(1);
nrf_gpio_pin_set(1);
nrf_gpio_cfg_default(0);
nrf_gpio_pin_set(0);
NRF_UARTE1->PSEL.TXD = 1;
NRF_UARTE1->PSEL.RXD = 0;
NRF_UARTE1->TASKS_STOPTX = 1;
NRF_UARTE1->TASKS_STOPRX = 1;
NRF_UARTE1->BAUDRATE = (uint32_t)UARTE_BAUDRATE_BAUDRATE_Baud115200;
/*Initialize DMA*/
NRF_UARTE1->INTENCLR = 0xffffffffUL;
NRF_UARTE1->INTENSET =
(UARTE_INTEN_ENDTX_Enabled << UARTE_INTEN_ENDTX_Pos) |
(UARTE_INTEN_ERROR_Enabled << UARTE_INTEN_ERROR_Pos);
/* APP IRQ */
Sys_clearFastAppIrq(UARTE1_SPIM1_SPIS1_TWIM1_TWIS1_IRQn);
Sys_enableFastAppIrq(UARTE1_SPIM1_SPIS1_TWIM1_TWIS1_IRQn,
APP_LIB_SYSTEM_IRQ_PRIO_HI,
UARTE1_IRQHandler);
NRF_UARTE1->ENABLE = UARTE_ENABLE_ENABLE_Enabled;
}
uint8_t tx_ptr1[1] = "Q";
void my_Usart1_transmit(void)
{
NRF_UARTE1->TXD.PTR = (uint32_t) tx_ptr1;
NRF_UARTE1->TXD.MAXCNT = 1;
NRF_UARTE1->EVENTS_ENDTX = 0;
NRF_UARTE1->TASKS_STARTTX = 1;
}
And the code for ISR is just simple:
void __attribute__((__interrupt__)) UARTE1_IRQHandler(void)
{
/* TX transfer complete, start next */
if (NRF_UARTE1->EVENTS_ENDTX != 0)
{
NRF_UARTE1->EVENTS_ENDTX = 0;
}
}
I tried hard and feel i need some expert advice.
Thank you.
Pawan