add USB CDC support, and implement self-check diagnostic

This commit is contained in:
2026-08-13 22:23:15 +02:00
parent 58b3a97d73
commit c64d145a1a
5 changed files with 233 additions and 88 deletions
+10 -4
View File
@@ -14,14 +14,20 @@ ch32-hal = { git = "https://github.com/ju6ge/ch32-hal", branch = "feature/i2c-sl
], default-features = false }
embassy-executor = { version = "0.7.0", features = [
"arch-riscv32",
# arch-riscv32's WFI-based sleep races with the USB interrupt wake signal,
# so tasks awaiting USB (e.g. wait_connection/write_packet) can hang
# forever even though the device enumerates fine. arch-spin busy-polls
# instead of sleeping, sidestepping the race. See CAN_Sensor/Cargo.toml
# for the same fix on the same ch32-hal/embassy-executor combo.
"arch-spin",
"executor-thread",
] }
embassy-time = { version = "0.4.0" }
embassy-usb = { version = "0.3.0" }
embassy-time = { version = "0.5.0", features = ["generic-queue-8"] }
embassy-usb = { version = "0.5.1" }
embassy-futures = { version = "0.1.0" }
embassy-sync = { version = "0.7.2" }
static_cell = "2.1.1"
# This is okay because we should automatically use whatever ch32-hal uses
qingke-rt = "*"
@@ -30,7 +36,7 @@ qingke = "*"
panic-halt = "1.0"
embedded-hal = "1.0.0"
heapless = "0.8.0"
heapless = { version = "0.8.0", features = ["portable-atomic-critical-section"] }
micromath = { version = "2.1.0", features = ["num-traits"] }
ch32-metapac = { version = "0.0.6", features = ["ch32v203c8t6"] }
ina219 = "0.2.0"