Skip to content

Commit a8273ec

Browse files
committed
Update examples for new hal
1 parent 4291f96 commit a8273ec

File tree

5 files changed

+35
-39
lines changed

5 files changed

+35
-39
lines changed

examples/stm32g4/.cargo/config.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[target.thumbv7em-none-eabihf]
2+
runner = 'probe-rs run --connect-under-reset'
3+
rustflags = [
4+
"-C", "link-arg=-Tlink.x",
5+
"-C", "link-arg=-Tdefmt.x",
6+
]
7+
8+
[build]
9+
target = "thumbv7em-none-eabihf"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"rust-analyzer.check.allTargets": false,
3+
"rust-analyzer.check.extraArgs": [
4+
"--bins"
5+
],
6+
"rust-analyzer.cargo.target": "thumbv7em-none-eabihf",
7+
"rust-analyzer.cargo.features": ["stm32g474"]
8+
}

examples/stm32g4/src/bin/adc-trigger.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ use stm32_hrtim::{
1111
timer::HrTimer,
1212
};
1313
use stm32g4xx_hal::{
14-
adc::{self, AdcClaim, ClockSource, Temperature, Vref},
14+
adc::{self, temperature::Temperature, AdcClaim, AdcCommonExt, Vref},
1515
delay::SYSTDelayExt,
16-
dma::{self, TransferExt, channel::DMAExt, config::DmaConfig},
16+
dma::{self, channel::DMAExt, config::DmaConfig, TransferExt},
1717
gpio::GpioExt,
1818
hrtim::{HrControltExt, HrPwmBuilderExt},
1919
pwr::PwrExt,
@@ -105,15 +105,16 @@ fn main() -> ! {
105105
out2.enable_set_event(&timer);
106106

107107
defmt::info!("Setup Adc1");
108-
let mut adc = dp
109-
.ADC1
110-
.claim(ClockSource::SystemClock, &rcc, &mut delay, true);
108+
let mut adc12_common = dp
109+
.ADC12_COMMON
110+
.claim(adc::config::ClockMode::AdcHclkDiv4, &mut rcc);
111+
let mut adc = adc12_common.claim(dp.ADC1, &mut delay);
111112

112113
adc.set_external_trigger((
113114
adc::config::TriggerMode::RisingEdge,
114115
(&hr_control.adc_trigger1).into(),
115116
));
116-
adc.enable_temperature(&dp.ADC12_COMMON);
117+
adc12_common.enable_temperature();
117118
adc.set_continuous(adc::config::Continuous::Discontinuous);
118119
adc.reset_sequence();
119120
adc.configure_channel(

examples/stm32g4/src/bin/eev-comp.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,7 @@ use stm32_hrtim::{
1616
timer_eev_cfg::{EevCfg, EevCfgs},
1717
};
1818
use stm32g4xx_hal::{
19-
comparator::{self, ComparatorExt, ComparatorSplit},
20-
dac::{self, DacExt, DacOut},
21-
delay::SYSTDelayExt,
22-
gpio::{GpioExt, SignalEdge},
23-
hrtim::{HrControltExt, HrPwmBuilderExt, external_event::EevInputExt},
24-
pwr::PwrExt,
25-
rcc::{self, RccExt},
26-
stm32::{CorePeripherals, Peripherals},
19+
comparator::{self, ComparatorExt, ComparatorSplit}, dac::{self, DacExt, DacOut}, delay::SYSTDelayExt, gpio::{GpioExt, SignalEdge}, hrtim::{external_event::EevInputExt, HrControltExt, HrPwmBuilderExt}, pwr::PwrExt, rcc::{self, RccExt}, stasis::Freeze, stm32::{CorePeripherals, Peripherals}
2720
};
2821

2922
#[entry]
@@ -55,7 +48,7 @@ fn main() -> ! {
5548
let pin_a = gpioa.pa8;
5649

5750
let dac1ch1 = dp.DAC1.constrain(dac::Dac1IntSig1, &mut rcc);
58-
let mut dac = dac1ch1.calibrate_buffer(&mut delay).enable(&mut rcc);
51+
let (mut dac, [dac_token]) = dac1ch1.calibrate_buffer(&mut delay).enable(&mut rcc).freeze();
5952

6053
// Use dac to define the fault threshold
6154
// 2^12 / 2 = 2^11 for about half of VCC
@@ -65,8 +58,8 @@ fn main() -> ! {
6558
let (comp1, ..) = dp.COMP.split(&mut rcc);
6659

6760
let comp1 = comp1.comparator(
68-
&input,
69-
&dac,
61+
input,
62+
dac_token,
7063
comparator::Config::default().hysteresis(comparator::Hysteresis::None),
7164
//.output_inverted(),
7265
&rcc.clocks,

examples/stm32g4/src/bin/flt-comp.rs

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,7 @@ use stm32_hrtim::{
1616
timer::HrTimer,
1717
};
1818
use stm32g4xx_hal::{
19-
self as hal,
20-
adc::AdcClaim,
21-
comparator::{self, ComparatorExt, ComparatorSplit},
22-
dac::{Dac3IntSig1, DacExt, DacOut},
23-
delay::{DelayExt as _, SYSTDelayExt},
24-
gpio::GpioExt,
25-
hrtim::{HrControltExt, HrPwmBuilderExt, fault::FaultInput},
26-
pwr::PwrExt,
27-
rcc::{self, RccExt},
28-
stm32::{CorePeripherals, Peripherals},
19+
self as hal, adc::{config::ClockMode, AdcClaim, AdcCommonExt}, comparator::{self, ComparatorExt, ComparatorSplit}, dac::{Dac3IntSig1, DacExt, DacOut}, delay::{DelayExt as _, SYSTDelayExt}, gpio::GpioExt, hrtim::{fault::FaultInput, HrControltExt, HrPwmBuilderExt}, pwr::PwrExt, rcc::{self, RccExt}, stasis::Freeze, stm32::{CorePeripherals, Peripherals}
2920
};
3021

3122
#[entry]
@@ -48,20 +39,14 @@ fn main() -> ! {
4839

4940
let mut delay = cp.SYST.delay(&rcc.clocks);
5041

51-
let mut adc1 = dp.ADC1.claim_and_configure(
52-
hal::adc::ClockSource::SystemClock,
53-
&rcc,
54-
hal::adc::config::AdcConfig::default()
55-
.clock_mode(hal::adc::config::ClockMode::Synchronous_Div_4),
56-
&mut delay,
57-
false,
58-
);
42+
let adc12_common = dp.ADC12_COMMON.claim(ClockMode::AdcHclkDiv4, &mut rcc);
43+
let mut adc1 = adc12_common.claim_and_configure(dp.ADC1, Default::default(), &mut delay);
5944

6045
let gpioa = dp.GPIOA.split(&mut rcc);
6146
let gpioc = dp.GPIOC.split(&mut rcc);
6247

6348
let dac3ch1 = dp.DAC3.constrain(Dac3IntSig1, &mut rcc);
64-
let mut dac = dac3ch1.enable(&mut rcc);
49+
let (mut dac, [dac_token]) = dac3ch1.enable(&mut rcc).freeze();
6550

6651
// Use dac to define the fault threshold
6752
// 2^12 / 2 = 2^11 for about half of VCC
@@ -70,11 +55,11 @@ fn main() -> ! {
7055

7156
let (_comp1, _comp2, comp3, ..) = dp.COMP.split(&mut rcc);
7257

73-
let pc1 = gpioc.pc1.into_analog();
58+
let (pc1, [pc1_token]) = gpioc.pc1.into_analog().freeze();
7459
let comp3 = comp3
7560
.comparator(
76-
&pc1,
77-
&dac,
61+
pc1_token,
62+
dac_token,
7863
comparator::Config::default()
7964
.hysteresis(comparator::Hysteresis::None)
8065
.output_inverted(),

0 commit comments

Comments
 (0)