SPI works
This commit is contained in:
parent
9d05610b23
commit
90f0ffdc98
46
src/main.rs
46
src/main.rs
|
@ -42,17 +42,28 @@ fn configure_clocks(rcc: &mut rcc::RCC) {
|
|||
fn configure_peripherals(rcc: &mut hcl::platform::rcc::RCC,
|
||||
gpio: &mut gpio::GPIO,
|
||||
usart: &mut usart::USART) {
|
||||
rcc.apb2_enable.set_gpio_a(true);
|
||||
rcc.apb2_enable.configure(|a| a
|
||||
.set_gpio_a(true)
|
||||
.set_spi1(true));
|
||||
rcc.apb1_enable.configure(|a| a
|
||||
.set_usart2(true));
|
||||
|
||||
gpio.configure(|g| g
|
||||
.set_mode(2, gpio::PinMode::Output2MHz)
|
||||
.set_mode(2, gpio::PinMode::Output50MHz)
|
||||
.set_output_config(2, gpio::OutputConfig::AfPushPull)
|
||||
.set_mode(3, gpio::PinMode::Output50MHz)
|
||||
.set_output_config(3, gpio::OutputConfig::AfPushPull)
|
||||
// SCK1
|
||||
.set_mode(5, gpio::PinMode::Output50MHz)
|
||||
.set_output_config(5, gpio::OutputConfig::PushPull));
|
||||
.set_output_config(5, gpio::OutputConfig::AfPushPull)
|
||||
// MOSI1
|
||||
.set_mode(7, gpio::PinMode::Output50MHz)
|
||||
.set_output_config(7, gpio::OutputConfig::AfPushPull)
|
||||
// MISO1
|
||||
.set_mode(6, gpio::PinMode::Input)
|
||||
// NSS1
|
||||
.set_mode(4, gpio::PinMode::Output50MHz)
|
||||
.set_output_config(4, gpio::OutputConfig::PushPull));
|
||||
|
||||
usart.configure(|u| u
|
||||
.set_enabled(true)
|
||||
|
@ -70,12 +81,33 @@ fn run(mut scs: scs::Instance, mut p: hcl::platform::Instance) {
|
|||
|
||||
let mut printer = UsartPrinter::init(p.usart2);
|
||||
|
||||
for i in 0u32..0xffffffff {
|
||||
let x = format!("> {}\r\n", i).into_bytes();
|
||||
let mut spi = p.spi1;
|
||||
spi.configure(|s| s
|
||||
.set_enabled(true)
|
||||
.set_master_mode(true)
|
||||
.set_bidi_tx(false)
|
||||
.set_clock_divider(128)
|
||||
.set_data_16bit(true)
|
||||
.set_clock_idles_high(false)
|
||||
.set_lsb_first(false)
|
||||
.set_clock_skip_first(true));
|
||||
|
||||
printer.print(x);
|
||||
loop {
|
||||
for i in 0u16..0xffff {
|
||||
let x = format!("> {}\r\n", i).into_bytes();
|
||||
|
||||
p.gpio_a.set_bit(4);
|
||||
spi.set_data(i.into());
|
||||
|
||||
while spi.busy() {
|
||||
|
||||
}
|
||||
p.gpio_a.reset_bit(4);
|
||||
|
||||
|
||||
printer.print(x);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue