Hi, I need some guidance or an more in-depth example on adding the necessary code to read/write on the UART1 using the serial module or something else. Everything I've tried so far causes a fatal crash when attempt to write on UART1.
I've started with the experimental bluetoothds_template. Then I used BDS to create my GATT service and imported the code. Everything works and I am able to r/w my characteristic values.
I need to communicate with an external sensor using the UART1. UART0 is already enabled by default for logging. I tried to follow the example from this question and some others.
Some items I've done are set in sdk_config.h
#define NRF_QUEUE_ENABLED 1
#define NRF_SERIAL_ENABLED 1
#define UART1_ENABLED 1
#define UART1_CONFIG_USE_EASY_DMA 1
set this in my header
NRF_SERIAL_DRV_UART_CONFIG_DEF(m_uart1_drv_config,
ARDUINO_0_PIN, ARDUINO_1_PIN,
ARDUINO_2_PIN, ARDUINO_3_PIN,
NRF_UART_HWFC_ENABLED, NRF_UART_PARITY_INCLUDED,
NRF_UART_BAUDRATE_115200,
UART_DEFAULT_CONFIG_IRQ_PRIORITY);
#define SERIAL_FIFO_TX_SIZE 32
#define SERIAL_FIFO_RX_SIZE 32
NRF_SERIAL_QUEUES_DEF(serial1_queues, SERIAL_FIFO_TX_SIZE, SERIAL_FIFO_RX_SIZE);
#define SERIAL_BUFF_TX_SIZE 1
#define SERIAL_BUFF_RX_SIZE 1
NRF_SERIAL_BUFFERS_DEF(serial1_buffs, SERIAL_BUFF_TX_SIZE, SERIAL_BUFF_RX_SIZE);
NRF_SERIAL_CONFIG_DEF(serial1_config, NRF_SERIAL_MODE_DMA,
&serial1_queues, &serial1_buffs, NULL, NULL);
NRF_SERIAL_UART_DEF(serial1_uart, 1);
called this in the init area of main
ret = nrf_serial_init(&serial1_uart, &m_uart1_drv_config, &serial1_config);
and the sending of data in a timer
ret = nrf_serial_write(&serial1_uart, tx_message, strlen(tx_message), NULL, 0);
The first time data is written, no data is seen on the tx/rx lines on the sensor. The second time the chip faults.
Anyone have a good example? Thanks