fn EXTI0() {
    // Clear the interrupt request so it won't fire again before another press.
    unsafe { 
        let exti = &(*stm32f3xx_hal::stm32::EXTI::ptr());
        exti.pr1.write(|w| w.pr0().set_bit())
    }
    // PA0 has a low-pass filter, so don't need to debounce in software.
    // Relaxed means only this operation is atomic, no constraints on other operations.
    USER_BUTTON_PRESSED.store(true, Ordering::Relaxed);
}
// In the stm32f3-discovery board crate, this is abstracted to a button module or crate.
In the stm32f3-discovery board crate, this is abstracted to a button module or crate.
In the stm32f3 - discovery board crate this is abstracted to a button module or crate .
fn EXTI0() {
    // Clear the interrupt request so it won't fire again before another press.
    unsafe { 
        let exti = &(*stm32f3xx_hal::stm32::EXTI::ptr());
        exti.pr1.write(|w| w.pr0().set_bit())
    }
    // PA0 has a low-pass filter, so don't need to debounce in software.
    // Relaxed means only this operation is atomic, no constraints on other operations.
    USER_BUTTON_PRESSED.store(true, Ordering::Relaxed);
}
fn EXTI0 ( ) { // Clear the interrupt request so it won't fire again before another press. unsafe { let exti = & ( * stm32f3xx_hal :: stm32 :: EXTI :: ptr ( ) ) ; exti . pr1 . write ( | w | w . pr0 ( ) . set_bit ( ) ) } // PA0 has a low-pass filter, so don't need to debounce in software. // Relaxed means only this operation is atomic, no constraints on other operations. USER_BUTTON_PRESSED . store ( true , Ordering :: Relaxed ) ; }
In the stm32f3-discovery board crate, this is abstracted to a button module or crate.
In the stm32f3 - discovery board crate this is abstracted to a button module or crate .