( apal | 2020. 09. 16., sze – 15:49 )

Az I2C_SR3-at volatile-kent kell deklaralni. Ha nem ugy van deklaralva akkor biztos kioptimalizalja fordito. Nem ismerem az STM8-as cimtartomanyait de pl AVR-bol kiindulva imigyen kellene, ha ott is igy hivnak ezt a 8 bites regisztert:

#define  I2C_SR3  ( *(volatile uint8_t *)(0x23))

De egzaktul ugyanez a sema ARM+STM32 eseteben is, csak ott inkabb 32-bites I/O van (bar van ott is 16 meg 8 bites is, sok esetben a doksi nem is explicit irja hogy kell 8 bites access, de... na mindegy, az mar mas problemakor, de a volatile oda is kell).