I2C STM32 HAL

Gast #5988490
Lesenswert?

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
Angehängte Dateien:
Beitrag #5988667 wurde von einem Moderator gelöscht.
(Firma: Vescomp) #5988767
Lesenswert?

STM32 schrieb im Beitrag #5988490:
> Mir ist nicht klar, wie ich die Funtkionen nutze, um den repeated Start
> hin zu bekommen...

 Wie dir Jim M. bereits schrieb:
> HAL_I2C_Mem_Read() müsste genau den Fall abdecken.

 HAL_I2C_Mem_Read
1
 performs a I2C write operation to select the memory address to read and then reads N bytes.
2
 (START, I2C_Addr+Write, Memory address, repeated start, I2C_Address+Read, N bytes, STOP)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren