max6675 library works
This commit is contained in:
parent
145d1f8ef9
commit
69ed2fc701
31
src/main.rs
31
src/main.rs
|
@ -32,9 +32,9 @@ fn configure_clocks(rcc: &mut rcc::RCC) {
|
||||||
|
|
||||||
rcc.clock_config
|
rcc.clock_config
|
||||||
.configure(|c| {
|
.configure(|c| {
|
||||||
c.set_pll_multiplier(10)
|
c.set_pll_multiplier(10)
|
||||||
.set_pll_source(rcc::PllSource::HsiDiv2)
|
.set_pll_source(rcc::PllSource::HsiDiv2)
|
||||||
});
|
});
|
||||||
|
|
||||||
rcc.clock_control.set_pll_on(true);
|
rcc.clock_control.set_pll_on(true);
|
||||||
while !rcc.clock_control.pll_ready() {}
|
while !rcc.clock_control.pll_ready() {}
|
||||||
|
@ -64,16 +64,17 @@ fn configure_peripherals(rcc: &mut hcl::platform::rcc::RCC,
|
||||||
.set_output_config(7, gpio::OutputConfig::AfPushPull)
|
.set_output_config(7, gpio::OutputConfig::AfPushPull)
|
||||||
// MISO1
|
// MISO1
|
||||||
.set_mode(6, gpio::PinMode::Input)
|
.set_mode(6, gpio::PinMode::Input)
|
||||||
|
.set_input_config(6, gpio::InputConfig::PullUpDown)
|
||||||
// NSS1
|
// NSS1
|
||||||
.set_mode(4, gpio::PinMode::Output50MHz)
|
.set_mode(4, gpio::PinMode::Output50MHz)
|
||||||
.set_output_config(4, gpio::OutputConfig::PushPull)
|
.set_output_config(4, gpio::OutputConfig::PushPull)
|
||||||
});
|
});
|
||||||
|
|
||||||
usart.configure(|u| {
|
usart.configure(|u| {
|
||||||
u.set_enabled(true)
|
u.set_enabled(true)
|
||||||
.set_tx_enabled(true)
|
.set_tx_enabled(true)
|
||||||
.set_baudgen((21, 11))
|
.set_baudgen((21, 11))
|
||||||
}); // 115.2 kbaud
|
}); // 115.2 kbaud
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,16 +93,18 @@ fn run(mut scs: scs::Instance, mut p: hcl::platform::Instance) {
|
||||||
|
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
for i in 0u16..0xffff {
|
|
||||||
|
|
||||||
let res = max6675::read(spi, gpio, 4);
|
let res = max6675::read(spi, gpio, 4);
|
||||||
|
|
||||||
let msg = match res {
|
let msg = match res {
|
||||||
Ok(temp) => format!("> {}\r\n", temp).into_bytes(),
|
Ok(temp) => format!("> {}\r\n", temp).into_bytes(),
|
||||||
Err(err) => format!("Error > {}\r\n", err).into_bytes(),
|
Err(err) => format!("Error > {}\r\n", err).into_bytes(),
|
||||||
};
|
};
|
||||||
|
|
||||||
printer.print(msg);
|
printer.print(msg);
|
||||||
|
|
||||||
|
for y in 0u32..0xFFFFFF {
|
||||||
|
unsafe { asm!("nop" :::: "volatile") };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,13 +11,15 @@ pub fn read<SPIAddr, GPIOAddr>(spi: &mut PeripheralRef<spi::SPI, SPIAddr>,
|
||||||
GPIOAddr: Location
|
GPIOAddr: Location
|
||||||
{
|
{
|
||||||
spi.configure(|s| {
|
spi.configure(|s| {
|
||||||
s.set_enabled(true)
|
s.set_enabled(true)
|
||||||
.set_master_mode(true)
|
.set_master_mode(true)
|
||||||
.set_software_slave_select(true)
|
.set_software_slave_select(true)
|
||||||
.set_clock_divider(128)
|
.set_clock_divider(128)
|
||||||
.set_data_16bit(true)
|
.set_data_16bit(true)
|
||||||
.set_clock_skip_first(true)
|
.set_clock_skip_first(true)
|
||||||
});
|
// required for master mode, even if ss is done manually
|
||||||
|
.set_slave_select_output_enabled(true)
|
||||||
|
});
|
||||||
|
|
||||||
nss_gpio.reset_bit(nss_idx);
|
nss_gpio.reset_bit(nss_idx);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue