55
66use stm32g4xx_hal:: adc:: AdcClaim ;
77use stm32g4xx_hal:: adc:: ClockSource ;
8- use stm32g4xx_hal:: opamp:: { Gain , InternalOutput } ;
8+ use stm32g4xx_hal:: opamp:: Gain ;
99use stm32g4xx_hal:: prelude:: * ;
1010use stm32g4xx_hal:: pwr:: PwrExt ;
1111
@@ -34,12 +34,20 @@ fn main() -> ! {
3434 // setup opamps
3535 let ( opamp1, opamp2, opamp3, ..) = dp. OPAMP . split ( & mut rcc) ;
3636
37+ let pa1 = gpioa. pa1 . into_analog ( ) ;
38+ let pa2 = gpioa. pa2 . into_analog ( ) ;
39+ let pa7 = gpioa. pa7 . into_analog ( ) ;
40+
41+ let pb0 = gpiob. pb0 . into_analog ( ) ;
42+ let pb1 = gpiob. pb1 . into_analog ( ) ;
43+ let pb2 = gpiob. pb2 . into_analog ( ) ;
44+
3745 // Set up opamp1 and opamp2 in follower mode
38- let opamp1 = opamp1. follower ( gpioa . pa1 , gpioa . pa2 ) ;
39- let opamp2 = opamp2. follower ( gpioa . pa7 , InternalOutput ) ;
46+ let opamp1 = opamp1. follower ( pa1) . enable_output ( pa2) ;
47+ let opamp2 = opamp2. follower ( pa7) ;
4048
4149 // Set up opamp1 and opamp2 in open loop mode
42- let opamp3 = opamp3. open_loop ( gpiob . pb0 , gpiob . pb2 , gpiob . pb1 ) ;
50+ let opamp3 = opamp3. open_loop ( pb0, pb2) . enable_output ( pb1) ;
4351
4452 // disable opamps
4553 let ( opamp1, pa1, pa2) = opamp1. disable ( ) ;
@@ -48,18 +56,10 @@ fn main() -> ! {
4856 let ( _opamp3, _pb0, _pb2, _pb1) = opamp3. disable ( ) ;
4957
5058 // Configure opamp1 with pa1 as non-inverting input and set gain to x2
51- let _opamp1 = opamp1. pga (
52- pa1,
53- pa2, // Route output to pin pa2
54- Gain :: Gain2 ,
55- ) ;
59+ let _opamp1 = opamp1. pga ( pa1, Gain :: Gain2 ) . enable_output ( pa2) ; // Route output to pin pa2
5660
5761 // Configure op with pa7 as non-inverting input and set gain to x4
58- let opamp2 = opamp2. pga (
59- pa7,
60- InternalOutput , // Do not route output to any external pin, use internal AD instead
61- Gain :: Gain4 ,
62- ) ;
62+ let opamp2 = opamp2. pga ( pa7, Gain :: Gain4 ) ; // Do not route output to any external pin, use internal AD instead
6363
6464 // Lock opamp2. After the opamp is locked its registers cannot be written
6565 // until the device is reset (even if using unsafe register accesses).
0 commit comments