1 个不稳定版本
0.1.0 | 2019年6月28日 |
---|
#12 在 #configuring
26KB
417 行
Bus Pirate 客户端库
本库实现了 Bus Pirate 二进制协议,允许Rust程序与Bus Pirate交互,进而与SPI、I2C、UART等设备交互。实现的协议是Bus Pirate v3.6的协议。
库API使用类型来确保在不同Bus Pirate模式之间安全切换,并提供仅与当前模式相关的函数。在初始化时,假定Bus Pirate处于其正常终端模式,因此本库实现的第一步是切换到二进制模式。之后,调用者可以根据需要切换到其他二进制模式。
入口点是 BusPirate::new
,它接收并消耗由 embedded_hal::serial
定义的串行写入器和串行读取器。如果您在通用计算平台上运行,则可以使用 serial_embedded_hal
与操作系统提供的串行端口连接
let port = Serial::new(
"/dev/ttyUSB0",
&PortSettings {
baud_rate: serial_embedded_hal::BaudRate::Baud115200,
char_size: serial_embedded_hal::CharSize::Bits8,
parity: serial_embedded_hal::Parity::ParityNone,
stop_bits: serial_embedded_hal::StopBits::Stop1,
flow_control: serial_embedded_hal::FlowControl::FlowNone,
},
)?;
let (tx, rx) = port.split();
let bp = BusPirate::new(tx, rx);
BusPirate
对象代表处于正常终端模式的Bus Pirate,尚未配置为使用二进制协议。方法 init
可以将模式切换到“二进制位打”模式,得到一个 bitbang::BitBang
对象
let bb = bp.init()?;
除了提供对Bus Pirate引脚的直接控制外,位打模式也是进入其他更专业协议模式的入口。例如,SPI模式
let spi = bp.to_spi()?;
依赖项
~71KB