@@ -6,21 +6,14 @@ use embedded_hal::adc::{Channel, OneShot};
6
6
#[ cfg( all( feature = "stm32f103" , any( feature = "high" , feature = "xl" , ) , ) ) ]
7
7
use crate :: dma:: dma2;
8
8
use crate :: dma:: { dma1, CircBuffer , Receive , RxDma , Transfer , TransferPayload , W } ;
9
- #[ cfg( all( feature = "stm32f103" , any( feature = "high" , feature = "xl" , ) , ) ) ]
10
- use crate :: gpio:: gpiof;
11
- use crate :: gpio:: Analog ;
12
- use crate :: gpio:: { gpioa, gpiob, gpioc} ;
9
+ use crate :: gpio:: { self , Analog } ;
13
10
use crate :: rcc:: { Clocks , Enable , Reset } ;
14
11
use crate :: time:: kHz;
15
12
use core:: sync:: atomic:: { self , Ordering } ;
16
13
use cortex_m:: asm:: delay;
17
14
use embedded_dma:: StaticWriteBuffer ;
18
15
19
- #[ cfg( any( feature = "stm32f103" , feature = "connectivity" ) ) ]
20
- use crate :: pac:: ADC2 ;
21
- #[ cfg( all( feature = "stm32f103" , any( feature = "high" , feature = "xl" ) ) ) ]
22
- use crate :: pac:: ADC3 ;
23
- use crate :: pac:: { ADC1 , RCC } ;
16
+ use crate :: pac:: { self , RCC } ;
24
17
25
18
/// Continuous mode
26
19
pub struct Continuous ;
@@ -108,7 +101,7 @@ impl From<Align> for bool {
108
101
}
109
102
110
103
macro_rules! adc_pins {
111
- ( $ADC: ident , $( $pin: ty => $chan: expr) ,+ $( , ) * ) => {
104
+ ( $ADC: ty , $( $pin: ty => $chan: expr) ,+ $( , ) * ) => {
112
105
$(
113
106
impl Channel <$ADC> for $pin {
114
107
type ID = u8 ;
@@ -119,60 +112,60 @@ macro_rules! adc_pins {
119
112
} ;
120
113
}
121
114
122
- adc_pins ! ( ADC1 ,
123
- gpioa :: PA0 <Analog > => 0_u8 ,
124
- gpioa :: PA1 <Analog > => 1_u8 ,
125
- gpioa :: PA2 <Analog > => 2_u8 ,
126
- gpioa :: PA3 <Analog > => 3_u8 ,
127
- gpioa :: PA4 <Analog > => 4_u8 ,
128
- gpioa :: PA5 <Analog > => 5_u8 ,
129
- gpioa :: PA6 <Analog > => 6_u8 ,
130
- gpioa :: PA7 <Analog > => 7_u8 ,
131
- gpiob :: PB0 <Analog > => 8_u8 ,
132
- gpiob :: PB1 <Analog > => 9_u8 ,
133
- gpioc :: PC0 <Analog > => 10_u8 ,
134
- gpioc :: PC1 <Analog > => 11_u8 ,
135
- gpioc :: PC2 <Analog > => 12_u8 ,
136
- gpioc :: PC3 <Analog > => 13_u8 ,
137
- gpioc :: PC4 <Analog > => 14_u8 ,
138
- gpioc :: PC5 <Analog > => 15_u8 ,
115
+ adc_pins ! ( pac :: ADC1 ,
116
+ gpio :: PA0 <Analog > => 0_u8 ,
117
+ gpio :: PA1 <Analog > => 1_u8 ,
118
+ gpio :: PA2 <Analog > => 2_u8 ,
119
+ gpio :: PA3 <Analog > => 3_u8 ,
120
+ gpio :: PA4 <Analog > => 4_u8 ,
121
+ gpio :: PA5 <Analog > => 5_u8 ,
122
+ gpio :: PA6 <Analog > => 6_u8 ,
123
+ gpio :: PA7 <Analog > => 7_u8 ,
124
+ gpio :: PB0 <Analog > => 8_u8 ,
125
+ gpio :: PB1 <Analog > => 9_u8 ,
126
+ gpio :: PC0 <Analog > => 10_u8 ,
127
+ gpio :: PC1 <Analog > => 11_u8 ,
128
+ gpio :: PC2 <Analog > => 12_u8 ,
129
+ gpio :: PC3 <Analog > => 13_u8 ,
130
+ gpio :: PC4 <Analog > => 14_u8 ,
131
+ gpio :: PC5 <Analog > => 15_u8 ,
139
132
) ;
140
133
141
134
#[ cfg( any( feature = "stm32f103" , feature = "connectivity" ) ) ]
142
- adc_pins ! ( ADC2 ,
143
- gpioa :: PA0 <Analog > => 0_u8 ,
144
- gpioa :: PA1 <Analog > => 1_u8 ,
145
- gpioa :: PA2 <Analog > => 2_u8 ,
146
- gpioa :: PA3 <Analog > => 3_u8 ,
147
- gpioa :: PA4 <Analog > => 4_u8 ,
148
- gpioa :: PA5 <Analog > => 5_u8 ,
149
- gpioa :: PA6 <Analog > => 6_u8 ,
150
- gpioa :: PA7 <Analog > => 7_u8 ,
151
- gpiob :: PB0 <Analog > => 8_u8 ,
152
- gpiob :: PB1 <Analog > => 9_u8 ,
153
- gpioc :: PC0 <Analog > => 10_u8 ,
154
- gpioc :: PC1 <Analog > => 11_u8 ,
155
- gpioc :: PC2 <Analog > => 12_u8 ,
156
- gpioc :: PC3 <Analog > => 13_u8 ,
157
- gpioc :: PC4 <Analog > => 14_u8 ,
158
- gpioc :: PC5 <Analog > => 15_u8 ,
135
+ adc_pins ! ( pac :: ADC2 ,
136
+ gpio :: PA0 <Analog > => 0_u8 ,
137
+ gpio :: PA1 <Analog > => 1_u8 ,
138
+ gpio :: PA2 <Analog > => 2_u8 ,
139
+ gpio :: PA3 <Analog > => 3_u8 ,
140
+ gpio :: PA4 <Analog > => 4_u8 ,
141
+ gpio :: PA5 <Analog > => 5_u8 ,
142
+ gpio :: PA6 <Analog > => 6_u8 ,
143
+ gpio :: PA7 <Analog > => 7_u8 ,
144
+ gpio :: PB0 <Analog > => 8_u8 ,
145
+ gpio :: PB1 <Analog > => 9_u8 ,
146
+ gpio :: PC0 <Analog > => 10_u8 ,
147
+ gpio :: PC1 <Analog > => 11_u8 ,
148
+ gpio :: PC2 <Analog > => 12_u8 ,
149
+ gpio :: PC3 <Analog > => 13_u8 ,
150
+ gpio :: PC4 <Analog > => 14_u8 ,
151
+ gpio :: PC5 <Analog > => 15_u8 ,
159
152
) ;
160
153
161
154
#[ cfg( all( feature = "stm32f103" , any( feature = "high" , feature = "xl" , ) , ) ) ]
162
- adc_pins ! ( ADC3 ,
163
- gpioa :: PA0 <Analog > => 0_u8 ,
164
- gpioa :: PA1 <Analog > => 1_u8 ,
165
- gpioa :: PA2 <Analog > => 2_u8 ,
166
- gpioa :: PA3 <Analog > => 3_u8 ,
167
- gpiof :: PF6 <Analog > => 4_u8 ,
168
- gpiof :: PF7 <Analog > => 5_u8 ,
169
- gpiof :: PF8 <Analog > => 6_u8 ,
170
- gpiof :: PF9 <Analog > => 7_u8 ,
171
- gpiof :: PF10 <Analog > => 8_u8 ,
172
- gpioc :: PC0 <Analog > => 10_u8 ,
173
- gpioc :: PC1 <Analog > => 11_u8 ,
174
- gpioc :: PC2 <Analog > => 12_u8 ,
175
- gpioc :: PC3 <Analog > => 13_u8 ,
155
+ adc_pins ! ( pac :: ADC3 ,
156
+ gpio :: PA0 <Analog > => 0_u8 ,
157
+ gpio :: PA1 <Analog > => 1_u8 ,
158
+ gpio :: PA2 <Analog > => 2_u8 ,
159
+ gpio :: PA3 <Analog > => 3_u8 ,
160
+ gpio :: PF6 <Analog > => 4_u8 ,
161
+ gpio :: PF7 <Analog > => 5_u8 ,
162
+ gpio :: PF8 <Analog > => 6_u8 ,
163
+ gpio :: PF9 <Analog > => 7_u8 ,
164
+ gpio :: PF10 <Analog > => 8_u8 ,
165
+ gpio :: PC0 <Analog > => 10_u8 ,
166
+ gpio :: PC1 <Analog > => 11_u8 ,
167
+ gpio :: PC2 <Analog > => 12_u8 ,
168
+ gpio :: PC3 <Analog > => 13_u8 ,
176
169
) ;
177
170
178
171
/// Stored ADC config can be restored using the `Adc::restore_cfg` method
@@ -181,7 +174,7 @@ pub struct StoredConfig(SampleTime, Align);
181
174
182
175
macro_rules! adc_hal {
183
176
( $(
184
- $ADC: ident : ( $adc: ident) ,
177
+ $ADC: ty : ( $adc: ident) ,
185
178
) +) => {
186
179
$(
187
180
@@ -279,17 +272,17 @@ macro_rules! adc_hal {
279
272
280
273
fn reset( & mut self ) {
281
274
let rcc = unsafe { & ( * RCC :: ptr( ) ) } ;
282
- $ADC:: reset( rcc) ;
275
+ < $ADC> :: reset( rcc) ;
283
276
}
284
277
285
278
fn enable_clock( & mut self ) {
286
279
let rcc = unsafe { & ( * RCC :: ptr( ) ) } ;
287
- $ADC:: enable( rcc) ;
280
+ < $ADC> :: enable( rcc) ;
288
281
}
289
282
290
283
fn disable_clock( & mut self ) {
291
284
let rcc = unsafe { & ( * RCC :: ptr( ) ) } ;
292
- $ADC:: disable( rcc) ;
285
+ < $ADC> :: disable( rcc) ;
293
286
}
294
287
295
288
fn calibrate( & mut self ) {
@@ -461,7 +454,7 @@ macro_rules! adc_hal {
461
454
}
462
455
}
463
456
464
- impl Adc < ADC1 > {
457
+ impl Adc < pac :: ADC1 > {
465
458
fn read_aux ( & mut self , chan : u8 ) -> u16 {
466
459
let tsv_off = if self . rb . cr2 . read ( ) . tsvrefe ( ) . bit_is_clear ( ) {
467
460
self . rb . cr2 . modify ( |_, w| w. tsvrefe ( ) . set_bit ( ) ) ;
@@ -545,17 +538,17 @@ impl Adc<ADC1> {
545
538
}
546
539
547
540
adc_hal ! {
548
- ADC1 : ( adc1) ,
541
+ pac :: ADC1 : ( adc1) ,
549
542
}
550
543
551
544
#[ cfg( any( feature = "stm32f103" , feature = "connectivity" ) ) ]
552
545
adc_hal ! {
553
- ADC2 : ( adc2) ,
546
+ pac :: ADC2 : ( adc2) ,
554
547
}
555
548
556
549
#[ cfg( all( feature = "stm32f103" , any( feature = "high" , feature = "xl" , ) , ) ) ]
557
550
adc_hal ! {
558
- ADC3 : ( adc3) ,
551
+ pac :: ADC3 : ( adc3) ,
559
552
}
560
553
561
554
pub struct AdcPayload < ADC , PINS , MODE > {
@@ -608,7 +601,7 @@ pub trait SetChannels<PINS>: ChannelTimeSequence {
608
601
pub type AdcDma < ADC , PINS , MODE , CHANNEL > = RxDma < AdcPayload < ADC , PINS , MODE > , CHANNEL > ;
609
602
610
603
macro_rules! adcdma {
611
- ( $ADCX: ident : (
604
+ ( $ADCX: ty : (
612
605
$rxdma: ident,
613
606
$dmarxch: ty,
614
607
) ) => {
@@ -750,7 +743,7 @@ macro_rules! adcdma {
750
743
// until the end of the transfer.
751
744
let ( ptr, len) = unsafe { buffer. static_write_buffer( ) } ;
752
745
self . channel. set_peripheral_address(
753
- unsafe { & ( * $ADCX:: ptr( ) ) . dr as * const _ as u32 } ,
746
+ unsafe { & ( * < $ADCX> :: ptr( ) ) . dr as * const _ as u32 } ,
754
747
false ,
755
748
) ;
756
749
self . channel. set_memory_address( ptr as u32 , true ) ;
@@ -789,7 +782,7 @@ macro_rules! adcdma {
789
782
// until the end of the transfer.
790
783
let ( ptr, len) = unsafe { buffer. static_write_buffer( ) } ;
791
784
self . channel. set_peripheral_address(
792
- unsafe { & ( * $ADCX:: ptr( ) ) . dr as * const _ as u32 } ,
785
+ unsafe { & ( * < $ADCX> :: ptr( ) ) . dr as * const _ as u32 } ,
793
786
false ,
794
787
) ;
795
788
self . channel. set_memory_address( ptr as u32 , true ) ;
@@ -819,15 +812,15 @@ macro_rules! adcdma {
819
812
}
820
813
821
814
adcdma ! {
822
- ADC1 : (
815
+ pac :: ADC1 : (
823
816
AdcDma1 ,
824
817
dma1:: C1 ,
825
818
)
826
819
}
827
820
828
821
#[ cfg( all( feature = "stm32f103" , any( feature = "high" , feature = "xl" , ) , ) ) ]
829
822
adcdma ! {
830
- ADC3 : (
823
+ pac :: ADC3 : (
831
824
AdcDma3 ,
832
825
dma2:: C5 ,
833
826
)
0 commit comments