@@ -29,40 +29,41 @@ fn main() -> ! {
29
29
hal:: stm32:: Peripherals :: take ( ) ,
30
30
cortex_m:: peripheral:: Peripherals :: take ( ) ,
31
31
) {
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 ) ;
35
35
36
- let mut syst = cp . SYST ;
36
+ let gpioa = p . GPIOA . split ( & mut rcc ) ;
37
37
38
- // Set source for SysTick counter, here full operating frequency (== 8MHz)
39
- syst. set_clock_source ( Core ) ;
38
+ let mut syst = cp. SYST ;
40
39
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 ) ;
43
42
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 ) ;
46
45
47
- // Start SysTick interrupt generation
48
- syst. enable_interrupt ( ) ;
46
+ // Start SysTick counter
47
+ syst. enable_counter ( ) ;
49
48
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 ( ) ;
53
51
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 ) ;
57
55
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 ( ) ;
60
59
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 ) ;
63
62
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
66
67
* SHARED . borrow ( cs) . borrow_mut ( ) = Some ( Shared { adc, tx } ) ;
67
68
} ) ;
68
69
}
0 commit comments