- Check your I2C Write block settings: send 3 bytes, not 1.
- Make sure your I2C wiring and pull-ups are correct.
- Adjust your oscilloscope to capture the full transmission.
- Try updating your STM32 support package.
Sending data using I2C on Simulink
25 views (last 30 days)
Show older comments
Abdulrahman
on 10 Dec 2025 at 15:48
Commented: Abdulrahman
on 19 Dec 2025 at 15:34
I'm using Nucleo-G474RE to send a bit stream over Simulink, instead of receiving 24 bits on the oscilloscope i can read only 8 bits, which are supposed to be the 8 bits in the middle that have the address of the peripheral and the status of the I2C block gives me 516 which is not on the documentation from matlab.

0 Comments
Accepted Answer
Aditya
on 17 Dec 2025 at 6:22
Hi Abdurahman,
Only 8 bits seen: Your Simulink I2C Write block is likely configured to send just 1 byte (the address), not all 24 bits (3 bytes).Fix: Set the "Data size" in the block to 3, and input a 3-byte array.Status 516: This is not a standard Simulink code; it may mean "bus busy" or an error from the STM32 HAL library.You can check the following to resolve the issue:
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!