Hi there,
I'm using nrf52840 DK and Custom board, SDK 15.1.0, Segger Embedded Studio(SES v5.20)
my issue is when i receive data from uart interrupt based on serial uartes example, i can only receive one char at a time. that means if i store that data in a char variable and should add to the char array then its works fine, but i want to read the complete data on single shot, so how can i do that,? i'm i doing anything wrong.
void GSM_InterruptHandler(nrf_serial_t const *p_serial, nrf_serial_event_t event)
{
static uint8_t index1=0;
char bb;
switch (event)
{
case NRF_SERIAL_EVENT_RX_DATA:
if((nrf_serial_read(&serial0_uarte, &bb, sizeof(bb), &readed_size, 500))==NRF_SUCCESS)
{
gsm_d.RxBuf[index1++] = bb;
rx_done = true;
}
break;
case NRF_SERIAL_EVENT_TX_DONE:
tx_done = true;
break;
case NRF_SERIAL_EVENT_DRV_ERR:
APP_ERROR_CHECK(nrf_serial_uninit(&serial0_uarte));
APP_ERROR_CHECK(nrf_serial_init(&serial0_uarte, &m_uarte1_drv_config, &serial0_config));
break;
case NRF_SERIAL_EVENT_FIFO_ERR:
break;
default:
break;
}
}
Im reading the rx buff like this, but its triggers multiple times for every rx event, and i need like this
case NRF_SERIAL_EVENT_RX_DATA:
if((nrf_serial_read(&serial0_uarte, &gsm_d.RxBuf, sizeof(gsm_d.RxBuf), &readed_size, NRF_SERIAL_MAX_TIMEOUT))==NRF_SUCCESS)
{
rx_done = true;
}
break;
so please help me
Thanks in advance
Best Regards
Raj



