@@ -10,7 +10,7 @@ use cortex_m::asm;
10
10
use stm32f1xx_hal:: {
11
11
prelude:: * ,
12
12
pac,
13
- timer:: Timer ,
13
+ timer:: { Tim2NoRemap , Timer } ,
14
14
} ;
15
15
use cortex_m_rt:: entry;
16
16
@@ -25,14 +25,16 @@ fn main() -> ! {
25
25
26
26
let mut afio = p. AFIO . constrain ( & mut rcc. apb2 ) ;
27
27
28
- // let mut gpioa = p.GPIOA.split(&mut rcc.apb2);
29
- let mut gpiob = p. GPIOB . split ( & mut rcc. apb2 ) ;
28
+ let mut gpioa = p. GPIOA . split ( & mut rcc. apb2 ) ;
29
+ // let mut gpiob = p.GPIOB.split(&mut rcc.apb2);
30
30
31
31
// TIM2
32
32
let c1 = gpioa. pa0 . into_alternate_push_pull ( & mut gpioa. crl ) ;
33
33
let c2 = gpioa. pa1 . into_alternate_push_pull ( & mut gpioa. crl ) ;
34
34
let c3 = gpioa. pa2 . into_alternate_push_pull ( & mut gpioa. crl ) ;
35
- let c4 = gpioa. pa3 . into_alternate_push_pull ( & mut gpioa. crl ) ;
35
+ // If you don't want to use all channels, just leave some out
36
+ // let c4 = gpioa.pa3.into_alternate_push_pull(&mut gpioa.crl);
37
+ let pins = ( c1, c2, c3) ;
36
38
37
39
// TIM3
38
40
// let c1 = gpioa.pa6.into_alternate_push_pull(&mut gpioa.crl);
@@ -46,9 +48,9 @@ fn main() -> ! {
46
48
// let c3 = gpiob.pb8.into_alternate_push_pull(&mut gpiob.crh);
47
49
// let c4 = gpiob.pb9.into_alternate_push_pull(&mut gpiob.crh);
48
50
49
- let mut pwm = Timer :: tim4 ( p. TIM4 , & clocks, & mut rcc. apb1 )
50
- . pwm ( ( c1 , c2 , c3 , c4 ) , & mut afio. mapr , 1 . khz ( ) )
51
- . 3 ;
51
+ let mut pwm = Timer :: tim2 ( p. TIM2 , & clocks, & mut rcc. apb1 )
52
+ . pwm :: < Tim2NoRemap , _ , _ , _ > ( pins , & mut afio. mapr , 1 . khz ( ) )
53
+ . 2 ;
52
54
53
55
let max = pwm. get_max_duty ( ) ;
54
56
0 commit comments