sg200x_bsp/
lib.rs

1//! SG2002 BSP (Board Support Package)
2//!
3//! 本 crate 提供 SG2002 芯片的底层硬件抽象层驱动程序。
4//!
5//! # 模块
6//!
7//! - `pinmux`: 引脚复用控制驱动
8//! - `gpio`: GPIO 控制驱动
9//! - `sdmmc`: SD/MMC 控制驱动
10//! - `i2c`: I2C 控制驱动
11//! - `tpu`: TPU (张量处理单元) 驱动
12//! - `pwm`: PWM 控制驱动
13//!
14//! # I2C 使用示例
15//!
16//! ```rust,ignore
17//! use sg200x_bsp::i2c::{I2c, I2cInstance, I2cSpeed};
18//!
19//! // 创建 I2C0 驱动实例
20//! let mut i2c = unsafe { I2c::new(I2cInstance::I2c0) };
21//!
22//! // 初始化 I2C,使用快速模式
23//! i2c.init(I2cSpeed::Fast);
24//!
25//! // 写入数据到设备
26//! let slave_addr = 0x50;
27//! let data = [0x00, 0x01, 0x02];
28//! i2c.write(slave_addr, &data).unwrap();
29//!
30//! // 从设备读取数据
31//! let mut buf = [0u8; 4];
32//! i2c.read(slave_addr, &mut buf).unwrap();
33//! ```
34//!
35//! # PWM 使用示例
36//!
37//! ```rust,ignore
38//! use sg200x_bsp::pwm::{Pwm, PwmInstance, PwmChannel, PwmMode, PwmPolarity};
39//!
40//! // 创建 PWM0 控制器驱动实例
41//! let mut pwm = unsafe { Pwm::new(PwmInstance::Pwm0) };
42//!
43//! // 配置通道 0: 1KHz, 50% 占空比
44//! pwm.configure_channel(
45//!     PwmChannel::Channel0,
46//!     1_000,      // 1KHz 频率
47//!     50,         // 50% 占空比
48//!     PwmPolarity::ActiveHigh,
49//! ).unwrap();
50//!
51//! // 使能 IO 输出并启动
52//! pwm.enable_output(PwmChannel::Channel0);
53//! pwm.start(PwmChannel::Channel0);
54//! ```
55
56#![no_std]
57#![recursion_limit = "512"]
58
59pub mod gpio;
60pub mod i2c;
61pub mod mp;
62pub mod pinmux;
63pub mod pwm;
64pub mod rstc;
65pub mod sdmmc;
66pub mod tpu;