commit
						db54edf56c
					
				
							
								
								
									
										2
									
								
								ci.sh
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								ci.sh
									
									
									
									
									
								
							| @ -180,4 +180,6 @@ if [[ -z "${TELEPROBE_TOKEN-}" ]]; then | |||||||
|     exit |     exit | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | rm out/tests/stm32wb55rg/wpan_ble | ||||||
|  | 
 | ||||||
| teleprobe client run -r out/tests | teleprobe client run -r out/tests | ||||||
|  | |||||||
| @ -58,7 +58,7 @@ sdio-host = "0.5.0" | |||||||
| embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } | embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } | ||||||
| critical-section = "1.1" | critical-section = "1.1" | ||||||
| atomic-polyfill = "1.0.1" | atomic-polyfill = "1.0.1" | ||||||
| stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-e667107cf81934383ec5744f49b2cda0599ec749" } | stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-4e6a74f69c4bc5d2d4872ba50d805e75bfe55cad" } | ||||||
| vcell = "0.1.3" | vcell = "0.1.3" | ||||||
| bxcan = "0.7.0" | bxcan = "0.7.0" | ||||||
| nb = "1.0.0" | nb = "1.0.0" | ||||||
| @ -77,7 +77,7 @@ critical-section = { version = "1.1", features = ["std"] } | |||||||
| [build-dependencies] | [build-dependencies] | ||||||
| proc-macro2 = "1.0.36" | proc-macro2 = "1.0.36" | ||||||
| quote = "1.0.15" | quote = "1.0.15" | ||||||
| stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-e667107cf81934383ec5744f49b2cda0599ec749", default-features = false, features = ["metadata"]} | stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-4e6a74f69c4bc5d2d4872ba50d805e75bfe55cad", default-features = false, features = ["metadata"]} | ||||||
| 
 | 
 | ||||||
| [features] | [features] | ||||||
| default = ["rt"] | default = ["rt"] | ||||||
|  | |||||||
| @ -49,6 +49,9 @@ impl<'d, T: Instance> Adc<'d, T> { | |||||||
| 
 | 
 | ||||||
|         while T::regs().cr().read().adcal() {} |         while T::regs().cr().read().adcal() {} | ||||||
| 
 | 
 | ||||||
|  |         // Wait more than 4 clock cycles after adcal is cleared (RM0364 p. 223)
 | ||||||
|  |         delay.delay_us(6 * Self::freq().0 / 1_000_000); | ||||||
|  | 
 | ||||||
|         // Enable the adc
 |         // Enable the adc
 | ||||||
|         T::regs().cr().modify(|w| w.set_aden(true)); |         T::regs().cr().modify(|w| w.set_aden(true)); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -80,17 +80,21 @@ foreach_peripheral!( | |||||||
| #[cfg(any(stm32h7, adc_f3, adc_v4))] | #[cfg(any(stm32h7, adc_f3, adc_v4))] | ||||||
| foreach_peripheral!( | foreach_peripheral!( | ||||||
|     (adc, ADC3) => { |     (adc, ADC3) => { | ||||||
|         #[cfg(not(any(stm32g4x1, stm32g4x2, stm32g4x3, stm32g4x4)))] |  | ||||||
|         impl crate::adc::sealed::Instance for peripherals::ADC3 { |         impl crate::adc::sealed::Instance for peripherals::ADC3 { | ||||||
|             fn regs() -> crate::pac::adc::Adc { |             fn regs() -> crate::pac::adc::Adc { | ||||||
|                 crate::pac::ADC3 |                 crate::pac::ADC3 | ||||||
|             } |             } | ||||||
|             #[cfg(all(not(adc_f1), not(adc_v1)))] |             #[cfg(all(not(adc_f1), not(adc_v1)))] | ||||||
|  |             #[allow(unreachable_code)] | ||||||
|             fn common_regs() -> crate::pac::adccommon::AdcCommon { |             fn common_regs() -> crate::pac::adccommon::AdcCommon { | ||||||
|                 foreach_peripheral!{ |                 foreach_peripheral!{ | ||||||
|                     (adccommon, ADC3_COMMON) => { |                     (adccommon, ADC3_COMMON) => { | ||||||
|                         return crate::pac::ADC3_COMMON |                         return crate::pac::ADC3_COMMON | ||||||
|                     }; |                     }; | ||||||
|  |                     // Fall back to ADC_COMMON if ADC3_COMMON does not exist
 | ||||||
|  |                     (adccommon, ADC_COMMON) => { | ||||||
|  |                         return crate::pac::ADC_COMMON | ||||||
|  |                     }; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
| @ -100,21 +104,24 @@ foreach_peripheral!( | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         #[cfg(not(any(stm32g4x1, stm32g4x2, stm32g4x3, stm32g4x4)))] |  | ||||||
|         impl crate::adc::Instance for peripherals::ADC3 {} |         impl crate::adc::Instance for peripherals::ADC3 {} | ||||||
|     }; |     }; | ||||||
|     (adc, ADC4) => { |     (adc, ADC4) => { | ||||||
|         #[cfg(not(any(stm32g4x1, stm32g4x2, stm32g4x3, stm32g4x4)))] |  | ||||||
|         impl crate::adc::sealed::Instance for peripherals::ADC4 { |         impl crate::adc::sealed::Instance for peripherals::ADC4 { | ||||||
|             fn regs() -> crate::pac::adc::Adc { |             fn regs() -> crate::pac::adc::Adc { | ||||||
|                 crate::pac::ADC4 |                 crate::pac::ADC4 | ||||||
|             } |             } | ||||||
|             #[cfg(not(any(adc_f1, adc_v1)))] |             #[cfg(not(any(adc_f1, adc_v1)))] | ||||||
|  |             #[allow(unreachable_code)] | ||||||
|             fn common_regs() -> crate::pac::adccommon::AdcCommon { |             fn common_regs() -> crate::pac::adccommon::AdcCommon { | ||||||
|                 foreach_peripheral!{ |                 foreach_peripheral!{ | ||||||
|                     (adccommon, ADC3_COMMON) => { |                     (adccommon, ADC3_COMMON) => { | ||||||
|                         return crate::pac::ADC3_COMMON |                         return crate::pac::ADC3_COMMON | ||||||
|                     }; |                     }; | ||||||
|  |                     // Fall back to ADC_COMMON if ADC3_COMMON does not exist
 | ||||||
|  |                     (adccommon, ADC_COMMON) => { | ||||||
|  |                         return crate::pac::ADC_COMMON | ||||||
|  |                     }; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
| @ -124,11 +131,34 @@ foreach_peripheral!( | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         #[cfg(not(any(stm32g4x1, stm32g4x2, stm32g4x3, stm32g4x4)))] |  | ||||||
|         impl crate::adc::Instance for peripherals::ADC4 {} |         impl crate::adc::Instance for peripherals::ADC4 {} | ||||||
|     }; |     }; | ||||||
|     (adc, ADC5) => { |     (adc, ADC5) => { | ||||||
|  |         impl crate::adc::sealed::Instance for peripherals::ADC5 { | ||||||
|  |             fn regs() -> crate::pac::adc::Adc { | ||||||
|  |                 crate::pac::ADC5 | ||||||
|  |             } | ||||||
|  |             #[cfg(not(any(adc_f1, adc_v1)))] | ||||||
|  |             #[allow(unreachable_code)] | ||||||
|  |             fn common_regs() -> crate::pac::adccommon::AdcCommon { | ||||||
|  |                 foreach_peripheral!{ | ||||||
|  |                     (adccommon, ADC3_COMMON) => { | ||||||
|  |                         return crate::pac::ADC3_COMMON | ||||||
|  |                     }; | ||||||
|  |                     // Fall back to ADC_COMMON if ADC3_COMMON does not exist
 | ||||||
|  |                     (adccommon, ADC_COMMON) => { | ||||||
|  |                         return crate::pac::ADC_COMMON | ||||||
|  |                     }; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
| 
 | 
 | ||||||
|  |             #[cfg(adc_f3)] | ||||||
|  |             fn frequency() -> crate::time::Hertz { | ||||||
|  |                 unsafe { crate::rcc::get_freqs() }.adc34.unwrap() | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         impl crate::adc::Instance for peripherals::ADC5 {} | ||||||
|     }; |     }; | ||||||
|     (adc, $inst:ident) => { |     (adc, $inst:ident) => { | ||||||
|         impl crate::adc::sealed::Instance for peripherals::$inst { |         impl crate::adc::sealed::Instance for peripherals::$inst { | ||||||
|  | |||||||
| @ -102,7 +102,7 @@ where | |||||||
|         let presc = Prescaler::from_pclk2(T::frequency()); |         let presc = Prescaler::from_pclk2(T::frequency()); | ||||||
|         T::common_regs().ccr().modify(|w| w.set_adcpre(presc.adcpre())); |         T::common_regs().ccr().modify(|w| w.set_adcpre(presc.adcpre())); | ||||||
|         T::regs().cr2().modify(|reg| { |         T::regs().cr2().modify(|reg| { | ||||||
|             reg.set_adon(crate::pac::adc::vals::Adon::ENABLED); |             reg.set_adon(true); | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         delay.delay_us(ADC_POWERUP_TIME_US); |         delay.delay_us(ADC_POWERUP_TIME_US); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user