Hello BSTRobin, Thanks for the reply I tried your function but it gives the same result as my following functions : HAL_SPI_Transmit(&hspi1, &addr_reg, 1, HAL_MAX_DELAY); HAL_SPI_Receive(&hspi1, data_reg, len, HAL_MAX_DELAY); I think your function is the combination of my two functions. To give more details on my functions: HAL_SPI_Transmit(&hspi1, &addr_reg, 1, HAL_MAX_DELAY) sends one byte correspoing to the register to be read HAL_SPI_Receive(&hspi1, data_reg, len, HAL_MAX_DELAY) recieves len bytes. The API bmp3_get_regs() function manages to make len equal to (needed + 1) bytes as the first byte is a dummy one. In theory, it didn't need extra pull-up resistors for SDO. I disconnected all sensors from the master apart from one, and in that case, Isucceeded reading the chip_id so I am wondering if the SPI bus configuration is the matter. Especially I am worried about the SDO not being in high-impedance state when the sensor is not in communication with the master. And if it is the case, I am wondering if a tristate buffer is needed to force the SDO in the high-impedance state
... View more