diff --git a/platforms/stm32f7/src/f722/board.rs b/platforms/stm32f7/src/f722/board.rs index c556f00..e2b23cb 100644 --- a/platforms/stm32f7/src/f722/board.rs +++ b/platforms/stm32f7/src/f722/board.rs @@ -206,6 +206,13 @@ fn initialize_icm42688( configure_spi3_pins_pc10_pc11_pc12(&device.RCC, &device.GPIOC); configure_exti3_pin_pc3(&device.GPIOC); configure_exti3(&device.RCC, device.SYSCFG, device.EXTI); + // PA2/PA3 writes take effect only after enabling the GPIOA bus clock. + // The ICM route enables GPIOA later for chip select, which is too late for + // the USART2 alternate-function configuration below. + device + .RCC + .ahb1enr() + .modify(|_, write| write.gpioaen().set_bit()); configure_usart2_pins_pa2_pa3(&device.GPIOA); configure_vertical_pins(&device.RCC, &device.GPIOA, &device.GPIOB, vertical);