@@ -29,40 +29,41 @@ fn main() -> ! {
2929 hal:: stm32:: Peripherals :: take ( ) ,
3030 cortex_m:: peripheral:: Peripherals :: take ( ) ,
3131 ) {
32- let gpioa = p . GPIOA . split ( ) ;
33- let rcc = p. RCC . constrain ( ) ;
34- let clocks = rcc . cfgr . sysclk ( 8 . mhz ( ) ) . freeze ( ) ;
32+ cortex_m :: interrupt :: free ( move |cs| {
33+ let mut flash = p. FLASH ;
34+ let mut rcc = p . RCC . configure ( ) . sysclk ( 8 . mhz ( ) ) . freeze ( & mut flash ) ;
3535
36- let mut syst = cp . SYST ;
36+ let gpioa = p . GPIOA . split ( & mut rcc ) ;
3737
38- // Set source for SysTick counter, here full operating frequency (== 8MHz)
39- syst. set_clock_source ( Core ) ;
38+ let mut syst = cp. SYST ;
4039
41- // Set reload value, i.e. timer delay 8 MHz/counts
42- syst. set_reload ( 8_000_000 - 1 ) ;
40+ // Set source for SysTick counter, here full operating frequency (== 8MHz)
41+ syst. set_clock_source ( Core ) ;
4342
44- // Start SysTick counter
45- syst. enable_counter ( ) ;
43+ // Set reload value, i.e. timer delay 8 MHz/counts
44+ syst. set_reload ( 8_000_000 - 1 ) ;
4645
47- // Start SysTick interrupt generation
48- syst. enable_interrupt ( ) ;
46+ // Start SysTick counter
47+ syst. enable_counter ( ) ;
4948
50- // USART1 at PA9 (TX) and PA10(RX)
51- let tx = gpioa. pa9 . into_alternate_af1 ( ) ;
52- let rx = gpioa. pa10 . into_alternate_af1 ( ) ;
49+ // Start SysTick interrupt generation
50+ syst. enable_interrupt ( ) ;
5351
54- // Initialiase UART
55- let ( mut tx , _ ) =
56- hal :: serial :: Serial :: usart1 ( p . USART1 , ( tx , rx ) , 115_200 . bps ( ) , clocks ) . split ( ) ;
52+ // USART1 at PA9 (TX) and PA10(RX)
53+ let tx = gpioa . pa9 . into_alternate_af1 ( cs ) ;
54+ let rx = gpioa . pa10 . into_alternate_af1 ( cs ) ;
5755
58- // Initialise ADC
59- let adc = hal:: adc:: Adc :: new ( p. ADC ) ;
56+ // Initialiase UART
57+ let ( mut tx, _) =
58+ hal:: serial:: Serial :: usart1 ( p. USART1 , ( tx, rx) , 115_200 . bps ( ) , & mut rcc) . split ( ) ;
6059
61- // Output a friendly greeting
62- tx . write_str ( " \n \r This ADC example will read various values using the ADC and print them out to the serial terminal \r \n " ) . ok ( ) ;
60+ // Initialise ADC
61+ let adc = hal :: adc :: Adc :: new ( p . ADC , & mut rcc ) ;
6362
64- // Move all components under Mutex supervision
65- cortex_m:: interrupt:: free ( move |cs| {
63+ // Output a friendly greeting
64+ tx. write_str ( "\n \r This ADC example will read various values using the ADC and print them out to the serial terminal\r \n " ) . ok ( ) ;
65+
66+ // Move all components under Mutex supervision
6667 * SHARED . borrow ( cs) . borrow_mut ( ) = Some ( Shared { adc, tx } ) ;
6768 } ) ;
6869 }
0 commit comments