# ch58x-hal [![Github Actions][github-workflow]][homepage] [![Crates.io][badge-license]][crates] [![Crates.io][badge-version]][crates] [![docs.rs][badge-docsrs]][docsrs] [github-workflow]: https://img.shields.io/github/actions/workflow/status/ch32-rs/ch58x-hal/rust.yml?style=for-the-badge [badge-license]: https://img.shields.io/crates/l/ch58x-hal?style=for-the-badge [badge-version]: https://img.shields.io/crates/v/ch58x-hal?style=for-the-badge [badge-docsrs]: https://img.shields.io/docsrs/ch58x-hal?style=for-the-badge [crates]: https://crates.io/crates/ch58x-hal [docsrs]: https://docs.rs/ch58x-hal [homepage]: https://github.com/ch32-rs/ch58x-hal HAL for the CH58x RISC-V BLE microcotrollers from WCH. This crate is under random and active development. DO NOT USE in production. This should be the reference hal implementation for CH57x, CH58x, CH59x. ## Features - Basic: clock init, delay, interrupt, etc. - Dedicated runtime: interrupt table, hardware stack push, highcode support, critical section implementation - embassy support - time driver with SysTick, defaults to 32KHz tick - about 7k flash rom overhead - GPIO, with async support - UART, basic blocking tx, rx - RTC, with datetime support - SysTick delay (conflicts with embassy time driver) - I2C - ADC, with Temperature sensor, VBAT sensor - SPI - libISP ROM functions - Basic BLE library support ## Usage Refer `Cargo.toml` and `examples` directory. ## Notes - `UNDOCUMENTED:` tags in code comments means the information is not from official documents. ## References - [Slappy2022/ch58x-hal](https://github.com/Slappy2022/ch58x-hal) - [Slappy2022/ch58x-ble-rt](https://github.com/Slappy2022/ch58x-ble-rt)