You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
stm32/pyb_i2c: Fix pyb.I2C to work with dma=True on F4 MCUs.
Prior to this commit, excuting this code:
i2c = I2C(1, I2C.CONTROLLER, dma=True)
i2c.send(data, addr=i2c_addr)
the call to i2c.send() does not return and the board needs a reset. This
code works when dma=False.
According to the specification, I2Cx_EV_IRQHandler should:
- Write DR to address when Start condition generated.
- Clear ADDR by reading SR2 after reading SR2 when address sent.
These processes are included in HAL_I2C_EV_IRQHandler(), however the
firmware size increses about 2KB if HAL_I2C_EV_IRQHandler is called. This
commit adds above processes to i2c_ev_irq_handler, and increases firmware
by less than 100 bytes.
Fixes issue micropython#2643.
0 commit comments