Witam
Gdy przekazuję adres bufora do funkcji ląduję w hard_falout. Sprawa wygląda tak:
moja funkcja:
void ReadRegisterMulti(uint8_t reg, uint8_t *data, uint8_t count) {
reg=REGISTER_MASK(reg);
CS_LOW;
HAL_SPI_Transmit(&hspi1, ®, 1, 500); // wysłanie komendy
HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)NRF24L01_NOP_MASK, data, count, 500); // wysyłam NOPE (0xFF), dane mają być zapisywane w buforze data. PO WEJŚCIU W TĄ FUNKCJĘ I WYKONANIU KILKU LINIJEST ZOSTAJE PRZENIESIONY DO HARD_FALLOUT
CS_HIGH;
}
funkcja z gotowej biblioteki:
HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,
uint32_t Timeout);
#define REGISTER_MASK 0x1F
#define READ_REGISTER_MASK(reg) (0x00 | (REGISTER_MASK & reg))
#define NRF24L01_NOP_MASK 0xFF
uint8_t daneIn[4], daneOut[4];
uint8_t buff1[50];
int main(void)
{
ReadRegisterMulti(0x0B, &daneIn, 4);
x=sprintf((char*)buff1, "%02x %02x %02x %02x\n", daneIn[0], daneIn[1], daneIn[2], daneIn[3]);
HAL_UART_Transmit(&huart2, buff1, x, 500);
HAL_Delay(1000);
}
Podejrzewam, że namieszałem coś z przekazywaniem adresu mojego bufora do funkcji, tylko nie wiem co.