mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-10-02 06:40:32 +00:00
Merge pull request #2934 from embassy-rs/example-papercuts
Fix misc example papercuts.
This commit is contained in:
commit
aaf4cb0cb2
@ -291,7 +291,7 @@ pub struct Config {
|
|||||||
|
|
||||||
impl Default for Config {
|
impl Default for Config {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self { vbus_detection: true }
|
Self { vbus_detection: false }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,9 +62,9 @@ async fn main(spawner: Spawner) -> ! {
|
|||||||
|
|
||||||
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
||||||
|
|
||||||
static PACKETS: StaticCell<PacketQueue<16, 16>> = StaticCell::new();
|
static PACKETS: StaticCell<PacketQueue<4, 4>> = StaticCell::new();
|
||||||
let device = Ethernet::new(
|
let device = Ethernet::new(
|
||||||
PACKETS.init(PacketQueue::<16, 16>::new()),
|
PACKETS.init(PacketQueue::<4, 4>::new()),
|
||||||
p.ETH,
|
p.ETH,
|
||||||
Irqs,
|
Irqs,
|
||||||
p.PA1,
|
p.PA1,
|
||||||
|
@ -77,13 +77,11 @@ async fn main(spawner: Spawner) {
|
|||||||
let ep_out_buffer = &mut OUTPUT_BUFFER.init([0; 256])[..];
|
let ep_out_buffer = &mut OUTPUT_BUFFER.init([0; 256])[..];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, ep_out_buffer, config);
|
||||||
|
|
||||||
|
@ -55,13 +55,11 @@ async fn main(_spawner: Spawner) {
|
|||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
@ -52,13 +52,11 @@ async fn main(_spawner: Spawner) {
|
|||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
@ -105,13 +105,11 @@ async fn main(_spawner: Spawner) {
|
|||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
@ -52,13 +52,11 @@ async fn main(_spawner: Spawner) {
|
|||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
@ -63,9 +63,9 @@ async fn main(spawner: Spawner) -> ! {
|
|||||||
|
|
||||||
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
||||||
|
|
||||||
static PACKETS: StaticCell<PacketQueue<16, 16>> = StaticCell::new();
|
static PACKETS: StaticCell<PacketQueue<4, 4>> = StaticCell::new();
|
||||||
let device = Ethernet::new(
|
let device = Ethernet::new(
|
||||||
PACKETS.init(PacketQueue::<16, 16>::new()),
|
PACKETS.init(PacketQueue::<4, 4>::new()),
|
||||||
p.ETH,
|
p.ETH,
|
||||||
Irqs,
|
Irqs,
|
||||||
p.PA1,
|
p.PA1,
|
||||||
|
@ -52,13 +52,11 @@ async fn main(_spawner: Spawner) {
|
|||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
@ -64,10 +64,10 @@ async fn main(spawner: Spawner) -> ! {
|
|||||||
|
|
||||||
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
||||||
|
|
||||||
static PACKETS: StaticCell<PacketQueue<16, 16>> = StaticCell::new();
|
static PACKETS: StaticCell<PacketQueue<4, 4>> = StaticCell::new();
|
||||||
|
|
||||||
let device = Ethernet::new(
|
let device = Ethernet::new(
|
||||||
PACKETS.init(PacketQueue::<16, 16>::new()),
|
PACKETS.init(PacketQueue::<4, 4>::new()),
|
||||||
p.ETH,
|
p.ETH,
|
||||||
Irqs,
|
Irqs,
|
||||||
p.PA1,
|
p.PA1,
|
||||||
|
@ -64,10 +64,10 @@ async fn main(spawner: Spawner) -> ! {
|
|||||||
|
|
||||||
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
let mac_addr = [0x00, 0x00, 0xDE, 0xAD, 0xBE, 0xEF];
|
||||||
|
|
||||||
static PACKETS: StaticCell<PacketQueue<16, 16>> = StaticCell::new();
|
static PACKETS: StaticCell<PacketQueue<4, 4>> = StaticCell::new();
|
||||||
|
|
||||||
let device = Ethernet::new_mii(
|
let device = Ethernet::new_mii(
|
||||||
PACKETS.init(PacketQueue::<16, 16>::new()),
|
PACKETS.init(PacketQueue::<4, 4>::new()),
|
||||||
p.ETH,
|
p.ETH,
|
||||||
Irqs,
|
Irqs,
|
||||||
p.PA1,
|
p.PA1,
|
||||||
|
@ -53,13 +53,11 @@ async fn main(_spawner: Spawner) {
|
|||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
42
examples/stm32h7rs/src/bin/i2c.rs
Normal file
42
examples/stm32h7rs/src/bin/i2c.rs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#![no_std]
|
||||||
|
#![no_main]
|
||||||
|
|
||||||
|
use defmt::*;
|
||||||
|
use embassy_executor::Spawner;
|
||||||
|
use embassy_stm32::i2c::{Error, I2c};
|
||||||
|
use embassy_stm32::time::Hertz;
|
||||||
|
use embassy_stm32::{bind_interrupts, i2c, peripherals};
|
||||||
|
use {defmt_rtt as _, panic_probe as _};
|
||||||
|
|
||||||
|
const ADDRESS: u8 = 0x5F;
|
||||||
|
const WHOAMI: u8 = 0x0F;
|
||||||
|
|
||||||
|
bind_interrupts!(struct Irqs {
|
||||||
|
I2C2_EV => i2c::EventInterruptHandler<peripherals::I2C2>;
|
||||||
|
I2C2_ER => i2c::ErrorInterruptHandler<peripherals::I2C2>;
|
||||||
|
});
|
||||||
|
|
||||||
|
#[embassy_executor::main]
|
||||||
|
async fn main(_spawner: Spawner) {
|
||||||
|
info!("Hello world!");
|
||||||
|
let p = embassy_stm32::init(Default::default());
|
||||||
|
|
||||||
|
let mut i2c = I2c::new(
|
||||||
|
p.I2C2,
|
||||||
|
p.PB10,
|
||||||
|
p.PB11,
|
||||||
|
Irqs,
|
||||||
|
p.GPDMA1_CH4,
|
||||||
|
p.GPDMA1_CH5,
|
||||||
|
Hertz(100_000),
|
||||||
|
Default::default(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let mut data = [0u8; 1];
|
||||||
|
|
||||||
|
match i2c.blocking_write_read(ADDRESS, &[WHOAMI], &mut data) {
|
||||||
|
Ok(()) => info!("Whoami: {}", data[0]),
|
||||||
|
Err(Error::Timeout) => error!("Operation timed out"),
|
||||||
|
Err(e) => error!("I2c Error: {:?}", e),
|
||||||
|
}
|
||||||
|
}
|
@ -47,13 +47,11 @@ async fn main(_spawner: Spawner) {
|
|||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
|
||||||
// Enable vbus_detection
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
// Note: some boards don't have this wired up and might not require it,
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
// as they are powered through usb!
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
// If you hang on boot, try setting this to "false"!
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
// See https://embassy.dev/book/dev/faq.html#_the_usb_examples_are_not_working_on_my_board_is_there_anything_else_i_need_to_configure
|
config.vbus_detection = false;
|
||||||
// for more information
|
|
||||||
config.vbus_detection = true;
|
|
||||||
|
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
@ -43,6 +43,10 @@ async fn main(_spawner: Spawner) {
|
|||||||
// Create the driver, from the HAL.
|
// Create the driver, from the HAL.
|
||||||
let mut ep_out_buffer = [0u8; 256];
|
let mut ep_out_buffer = [0u8; 256];
|
||||||
let mut config = embassy_stm32::usb::Config::default();
|
let mut config = embassy_stm32::usb::Config::default();
|
||||||
|
// Do not enable vbus_detection. This is a safe default that works in all boards.
|
||||||
|
// However, if your USB device is self-powered (can stay powered on if USB is unplugged), you need
|
||||||
|
// to enable vbus_detection to comply with the USB spec. If you enable it, the board
|
||||||
|
// has to support it or USB won't work at all. See docs on `vbus_detection` for details.
|
||||||
config.vbus_detection = false;
|
config.vbus_detection = false;
|
||||||
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user