Nabend.
Ich frage mich, was für Routinen ich aufrufen muss, damit ich mehrere
Bytes hintereinander seden kann, bzw. was ich konfigurieren muss, damit
es funktioniert.
1 | uint8_t I2C_WrBytes(I2C_TypeDef *I2Cx, uint8_t Addr, uint8_t Reg, uint8_t Value[], uint8_t NumOfBytes)
|
2 | {
|
3 | uint32_t tme_out = 0;
|
4 |
|
5 | while(I2C_GetFlagStatus(I2Cx, I2C_FLAG_BUSY) == SET){}
|
6 |
|
7 | I2C_TransferHandling(I2Cx, Addr, 1, I2C_Reload_Mode, I2C_Generate_Start_Write);
|
8 |
|
9 | I2C_SendData(I2Cx, Reg);
|
10 |
|
11 | I2C_TransferHandling(I2Cx, Addr, NumOfBytes, I2C_AutoEnd_Mode, I2C_R);
|
12 |
|
13 | I2C_SendData(I2Cx, Value[x]);
|
14 |
|
15 | I2C_ClearFlag(I2Cx, I2C_FLAG_STOPF);
|
16 |
|
17 | return SUCCESS;
|
18 | }
|
Also Adresse mit Nutzbyte klappt aufjedenfall...