mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-05-19 01:19:07 +08:00
Move DMA start for tx/rx into the gap where SCL is still stretched so that there is no risk of receiving the first byte before DMA starts.
This commit is contained in:
parent
24f6c6b121
commit
82f72b96de
@ -158,6 +158,9 @@ i2c_interrupt(int irq, FAR void *context)
|
||||
|
||||
if (sr1 & I2C_SR1_ADDR) {
|
||||
|
||||
stm32_dmastart(tx_dma, NULL, NULL, false);
|
||||
stm32_dmastart(rx_dma, NULL, NULL, false);
|
||||
|
||||
/* clear ADDR to ack our selection and get direction */
|
||||
(void)rSR1; /* as recommended, re-read SR1 */
|
||||
uint16_t sr2 = rSR2;
|
||||
@ -166,13 +169,11 @@ i2c_interrupt(int irq, FAR void *context)
|
||||
/* we are the transmitter */
|
||||
|
||||
direction = DIR_TX;
|
||||
stm32_dmastart(tx_dma, NULL, NULL, false);
|
||||
|
||||
} else {
|
||||
/* we are the receiver */
|
||||
|
||||
direction = DIR_RX;
|
||||
stm32_dmastart(rx_dma, NULL, NULL, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user