Skip to content

Commit d5e7a87

Browse files
committed
remove NoPin, use Option
1 parent 704aa09 commit d5e7a87

21 files changed

+253
-302
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## [Unreleased]
99

10+
- remove `NoPin`, use `Option` instead
11+
1012
- Fix pac `defmt` feature
1113

1214
## [v0.22.0] - 2024-10-04

examples/analog-stopwatch-with-spi-ssd1306.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,13 @@ fn main() -> ! {
8888
//cs - pe4
8989
//dc - pe3
9090

91-
let sck = gpioe.pe2;
92-
let miso = gpioe.pe5;
93-
let mosi = gpioe.pe6;
91+
let sck = gpioe.pe2.into();
92+
let miso = gpioe.pe5.into();
93+
let mosi = gpioe.pe6.into();
9494

9595
let spi = Spi::new(
9696
dp.SPI4,
97-
(sck, miso, mosi),
97+
(Some(sck), Some(miso), Some(mosi)),
9898
Mode {
9999
polarity: Polarity::IdleLow,
100100
phase: Phase::CaptureOnFirstTransition,

examples/i2s-audio-out.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ use cortex_m_rt::entry;
5050

5151
use rtt_target::{rprintln, rtt_init_print};
5252

53-
use stm32f4xx_hal::gpio::NoPin;
5453
use stm32f4xx_hal::i2s::stm32_i2s_v12x::transfer::*;
5554
use stm32f4xx_hal::i2s::I2s;
5655
use stm32f4xx_hal::nb::block;
@@ -104,7 +103,7 @@ fn main() -> ! {
104103
.i2s_clk(61440.kHz())
105104
.freeze();
106105

107-
let i2s_pins = (gpioa.pa4, gpioc.pc10, NoPin::new(), gpioc.pc12);
106+
let i2s_pins = (gpioa.pa4, gpioc.pc10, None, gpioc.pc12);
108107
let i2s = I2s::new(dp.SPI3, i2s_pins, &clocks);
109108
let i2s_config = I2sTransferConfig::new_master()
110109
.transmit()

examples/ist7920-bidi-normal-spi.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ fn main() -> ! {
2828
let mut led = gpioa.pa5.into_push_pull_output();
2929
led.set_low();
3030

31-
let sck = gpiob.pb3.into_alternate();
32-
let mosi = gpiob.pb5;
31+
let sck = gpiob.pb3.into_alternate().into();
32+
let mosi = gpiob.pb5.into();
3333

3434
let dc = gpiob.pb4.into_push_pull_output();
3535
let mut res = gpiob.pb10.into_push_pull_output();
@@ -45,7 +45,9 @@ fn main() -> ! {
4545
// Change spi transfer mode to Bidi for more efficient operations.
4646
// let spi = Spi::new(dp.SPI1, (sck, miso, mosi), mode, 8.MHz(), &clocks).to_bidi_transfer_mode();
4747
// or
48-
let spi = dp.SPI1.spi_bidi((sck, mosi), mode, 8.MHz(), &clocks);
48+
let spi = dp
49+
.SPI1
50+
.spi_bidi((Some(sck), Some(mosi)), mode, 8.MHz(), &clocks);
4951

5052
let iface = SPIInterface::new(spi, dc, cs);
5153

examples/rtic-dual-i2s-audio-in-out.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,11 @@ mod app {
165165

166166
// I2S pins: (WS, CK, MCLK, SD) for I2S2
167167
let i2s2_pins = (
168-
gpiob.pb12, //WS
169-
gpiob.pb13, //CK
170-
gpioc.pc6, //MCK
171-
gpiob.pb15, //SD
172-
gpiob.pb14, //ExtSD
168+
gpiob.pb12, //WS
169+
gpiob.pb13, //CK
170+
Some(gpioc.pc6.into()), //MCK
171+
gpiob.pb15, //SD
172+
gpiob.pb14, //ExtSD
173173
);
174174
let i2s2 = DualI2s::new(device.SPI2, device.I2S2EXT, i2s2_pins, &clocks);
175175
let i2s2_config = DualI2sDriverConfig::new_master()

examples/rtic-i2s-audio-in-out.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ mod app {
8080

8181
use super::hal;
8282

83-
use hal::gpio::{Edge, NoPin};
83+
use hal::gpio::Edge;
8484
use hal::i2s::stm32_i2s_v12x::driver::*;
8585
use hal::i2s::I2s;
8686
use hal::pac::Interrupt;
@@ -169,10 +169,10 @@ mod app {
169169

170170
// I2S pins: (WS, CK, MCLK, SD) for I2S2
171171
let i2s2_pins = (
172-
gpiob.pb12, //WS
173-
gpiob.pb13, //CK
174-
gpioc.pc6, //MCK
175-
gpiob.pb15, //SD
172+
gpiob.pb12, //WS
173+
gpiob.pb13, //CK
174+
Some(gpioc.pc6.into()), //MCK
175+
gpiob.pb15, //SD
176176
);
177177
let i2s2 = I2s::new(device.SPI2, i2s2_pins, &clocks);
178178
let i2s2_config = I2sDriverConfig::new_master()
@@ -187,7 +187,7 @@ mod app {
187187
i2s2_driver.set_error_interrupt(true);
188188

189189
// I2S3 pins: (WS, CK, NoPin, SD) for I2S3
190-
let i2s3_pins = (gpioa.pa4, gpioc.pc10, NoPin::new(), gpioc.pc12);
190+
let i2s3_pins = (gpioa.pa4, gpioc.pc10, None, gpioc.pc12);
191191
let i2s3 = I2s::new(device.SPI3, i2s3_pins, &clocks);
192192
let i2s3_config = i2s2_config.to_slave().transmit();
193193
let mut i2s3_driver = I2sDriver::new(i2s3, i2s3_config);

examples/rtic-spi-slave-dma.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,16 @@ mod app {
6868

6969
let gpiob = gpiob.split();
7070

71-
let sck = gpiob.pb3.into_alternate();
72-
let miso = gpiob.pb4.into_alternate();
73-
let mosi = gpiob.pb5;
71+
let sck = gpiob.pb3.into_alternate().into();
72+
let miso = gpiob.pb4.into_alternate().into();
73+
let mosi = gpiob.pb5.into();
7474

7575
let mode = Mode {
7676
polarity: Polarity::IdleLow,
7777
phase: Phase::CaptureOnFirstTransition,
7878
};
7979

80-
let mut spi3 = SpiSlave::new(spi, (sck, miso, mosi, None), mode);
80+
let mut spi3 = SpiSlave::new(spi, (Some(sck), Some(miso), Some(mosi), None), mode);
8181
spi3.set_internal_nss(false);
8282

8383
let (tx, rx) = spi3.use_dma().txrx();

examples/sai-duplex.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ fn main() -> ! {
4343
num_slots: 2,
4444
};
4545
let tx = saia.master_tx(
46-
(gpioe.pe2, gpioe.pe4, gpioe.pe5, gpioe.pe6),
46+
(Some(gpioe.pe2.into()), gpioe.pe4, gpioe.pe5, gpioe.pe6),
4747
protocol,
4848
48.kHz(),
4949
&clocks,

examples/spi-dma.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,22 @@ fn main() -> ! {
4848
.pb15
4949
.into_alternate()
5050
.speed(Speed::VeryHigh)
51-
.internal_pull_up(true);
52-
let pb13 = gpiob.pb13.into_alternate().speed(Speed::VeryHigh);
51+
.internal_pull_up(true)
52+
.into();
53+
let pb13 = gpiob.pb13.into_alternate().speed(Speed::VeryHigh).into();
5354

5455
let mode = Mode {
5556
polarity: Polarity::IdleLow,
5657
phase: Phase::CaptureOnFirstTransition,
5758
};
5859

59-
let spi2 = Spi::new(dp.SPI2, (pb13, NoMiso::new(), pb15), mode, 3.MHz(), &clocks);
60+
let spi2 = Spi::new(
61+
dp.SPI2,
62+
(Some(pb13), None, Some(pb15)),
63+
mode,
64+
3.MHz(),
65+
&clocks,
66+
);
6067

6168
let buffer = cortex_m::singleton!(: [u8; ARRAY_SIZE] = [1; ARRAY_SIZE]).unwrap();
6269

examples/spi_slave.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@ fn main() -> ! {
2424

2525
let gpioa = p.GPIOA.split();
2626

27-
let sck = gpioa.pa5.internal_resistor(Pull::Up);
28-
let miso = gpioa.pa6.internal_resistor(Pull::Down);
29-
let mosi = gpioa.pa7.internal_resistor(Pull::Down);
27+
let sck = gpioa.pa5.internal_resistor(Pull::Up).into();
28+
let miso = gpioa.pa6.internal_resistor(Pull::Down).into();
29+
let mosi = gpioa.pa7.internal_resistor(Pull::Down).into();
3030

3131
// clock speed is determined by the master
3232
let nss = gpioa.pa4.internal_resistor(Pull::Up).into();
33-
let mut spi = p.SPI1.spi_slave((sck, miso, mosi, Some(nss)), MODE);
33+
let mut spi = p
34+
.SPI1
35+
.spi_slave((Some(sck), Some(miso), Some(mosi), Some(nss)), MODE);
3436
// alternativelly you could use software `chip select`
3537
// let mut spi = SpiSlave::new(p.SPI1, (sck, miso, mosi, None), MODE);
3638
// spi.set_internal_nss(false);

0 commit comments

Comments
 (0)