pub struct SpiBitbangEncoder<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> {
pub config: SpiBitbangConfig,
pub delays: SpiEncodingDelays,
/* private fields */
}
Expand description
An encoder for SPI transmissions, parameterized over bits in the output bitfields to use for transmission. Does not support encoding as a SPI device (only works as a SPI host).
Fields§
§config: SpiBitbangConfig
§delays: SpiEncodingDelays
Implementations§
Source§impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
pub fn new(config: SpiBitbangConfig, delays: SpiEncodingDelays) -> Self
pub fn reset(&mut self)
pub fn set_data_mode(&mut self, mode: SpiDataMode)
Sourcepub fn assert_cs(&mut self, assert: bool, samples: &mut Vec<u8>)
pub fn assert_cs(&mut self, assert: bool, samples: &mut Vec<u8>)
Output GPIO bitbanging samples for pulling CS low/high (active/inactive).
Sourcepub fn encode_read(
&mut self,
words: usize,
samples: &mut Vec<u8>,
) -> Result<(), SpiTransferEncodeError>
pub fn encode_read( &mut self, words: usize, samples: &mut Vec<u8>, ) -> Result<(), SpiTransferEncodeError>
Encode a read transmission of several SPI words into GPIO bitbanging samples.
CS should already be asserted via assert_cs
before calling.
Sourcepub fn encode_write(
&mut self,
data: &[u8],
samples: &mut Vec<u8>,
) -> Result<(), SpiTransferEncodeError>
pub fn encode_write( &mut self, data: &[u8], samples: &mut Vec<u8>, ) -> Result<(), SpiTransferEncodeError>
Encode a write transmission of several SPI words into GPIO bitbanging samples.
CS should already be asserted via assert_cs
before calling.
Sourcepub fn encode_transaction(
&mut self,
data: &[u8],
samples: &mut Vec<u8>,
) -> Result<(), SpiTransferEncodeError>
pub fn encode_transaction( &mut self, data: &[u8], samples: &mut Vec<u8>, ) -> Result<(), SpiTransferEncodeError>
A helper function to encode a full SPI transmission, including logic for asserting and later de-asserting the CS.
Auto Trait Implementations§
impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> Freeze for SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> RefUnwindSafe for SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> Send for SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> Sync for SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> Unpin for SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
impl<const D0: u8, const D1: u8, const D2: u8, const D3: u8, const CLK: u8, const CS: u8> UnwindSafe for SpiBitbangEncoder<D0, D1, D2, D3, CLK, CS>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more