Results 353 comments of Andelf

Added `rust-toolchain.toml` for a temporary workaround.

@Codetector1374 Thank you for the suggestion. I'm currently on holiday, but I plan to implement this when I return. Of course, pull requests are always welcome. 😊

Close as fixed.

To use Async SPI: ```rust bind_interrupts!(struct Irqs { SPI1 => hal::spi::InterruptHandler; }); let mut config = hal::spi::Config::default(); config.frequency = Hertz::mhz(2); let spi = hal::spi::Spi::new_txonly(r.spi1, r.sclk, r.mosi, Irqs, r.dma_ch0, config); ```

Try the following steps to diagnose the issue: - Make sure the `Output::new(p.PB8, Level::Low, Default::default())` matches the LED pin of the board - Try flash and debug using WCH-Link, which...

The traditional method is `objcopy -O binary`. In Rust, many new tools are invented. `wlink` and `wchisp` also print firmware info when flashing.

Agreed. A delay implementation is necessary when embassy is not enabled. WCH's MCU is slow when running on FLASH. So the delay might be incorrect due to flash latency.

Thanks. I'll add the missing `transaction` based on your PR.

It seems the current async I2C implementation is buggy. I'll review this when impl is fixed.

The DMA seems not starting. I'll compare the reg diffs vs the official EVT code.