句柄
方法
类型
SpiConfig
None 的字段保留该 Net 已保存的值。设置了的内容会实时应用并持久化到 Box 上。
SpiOptions
SpiTransfer
方法参考
configure(config: &SpiConfig) -> Result<SpiEffectiveConfig>
应用设置并回读实际生效的内容。
read(n_words: u32, opts: &SpiOptions) -> Result<SpiTransfer>
移入 n_words 个字,每个字对应移出一个 opts.fill。
write(data: &[u32], opts: &SpiOptions) -> Result<SpiTransfer>
恰好移出 data。SPI 是全双工的,因此同一次事务中移入的字会在结果里返回 —— 一次写入同时也是一次读取。
read_write(data: &[u32], opts: &SpiOptions) -> Result<SpiTransfer>
恰好按 data 进行全双工传输。
transfer(data: &[u32], n_words: u32, opts: &SpiOptions) -> Result<SpiTransfer>
恰好传输 n_words 个字,用填充字补齐 data 或者把它截断。
示例
读取 Flash 芯片的 JEDEC ID
在两次事务之间保持片选
处于auto 片选模式的 LabJack U3 拒绝 keep_cs: true。在 U3 上,请使用一个不带片选的 SPI Net,并用一个 GPIO Net 来驱动片选。
受支持的硬件
说明
opts.fill只会在read()和transfer()时发送。write()和read_write()恰好移出给定的数据,因此填充字对它们没有意义。- 每一次传输都会返回
word_size,因为配置为 16 位字的总线返回的是每字一项,而不是每字节一项。 - 事务在 Box 上、在该设备的锁之下运行,因此一次多字传输不会被同一设备上的另一个请求打断。
configure()会跨测试持久化。请把您所依赖的设置显式设好,而不是想当然。

