Hallo,
ich steh gerade etwas auf dem Schlauch.
Möchte eigentlich nur einen einfachen I2C Sensor anschließen und ein
Register auslesen.
Nach Datenblatt also einmal die Adresse des Device auf den BUS mir R/W=0
, danach die Adresse des Registers gefolgt von einem Repeated Start und
der Device-Adresse mit R/W=1.
Nun nutze ich die STM32 HAL-Bibliothek und habe dort die Funktionen
1 | HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)
|
2 | |
3 | HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)
|
4 | |
5 | und alternativ evtl.:
|
6 | |
7 | HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)
|
Wie nutze ich die Dinger jetzt richtig?
Die Device-Adresse ist: 0xAA
Das aus zu lesende Register im Device ist: 0XBB
Mir ist nicht klar, wie ich die Funtkionen nutze, um den repeated Start
hin zu bekommen...
Bin dankbar für etwas Unterstützung