Hi
Hopefully a quick question. I want to send a set of bytes 'shtpData' between to routines but only one byte is being sent:
Sending 'unit8_t *dataPacket' of 5 bytes.
bool sendPacket(uint8_t channelNumber, uint8_t dataLength, uint8_t *dataPacket)
{
uint8_t shtpData[MAX_PACKET_SIZE];
shtpData[0] = dataLength & 0xFF;
shtpData[1] = dataLength >> 8;
shtpData[2] = channelNumber;
shtpData[3] = sequenceNumber[channelNumber]++;
for (uint8_t i = 0; i < dataLength; i++) {shtpData[i+4] = dataPacket[i];}
ret_code_t err_code = srm_nrfx_twi_tx(shtpData, dataLength + 4);
if (err_code != NRF_SUCCESS) {return false;}
return true;
}
Receiver 'pData' is only the first byte.
uint32_t srm_nrfx_twi_tx (uint8_t *pData, uint32_t len)
{
ret_code_t err_code;
nrfx_twi_xfer_desc_t xfer_init;
xfer_init.type = NRFX_TWI_XFER_TX;
xfer_init.address = BNO080_ADDR_SH2_0;
xfer_init.primary_length = len;
xfer_init.p_primary_buf = pData;
err_code = nrfx_twi_xfer(&m_twi, &xfer_init, 0);
if(err_code != NRF_SUCCESS){return err_code;}
return NRF_SUCCESS;
}
Any ideas?