Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MAX44000 PWM_Tone_Library nexpaq_mdk
Fork of LED_Demo by
SPIHalfDuplex Class Reference
A SPI half-duplex master, used for communicating with SPI slave devices over a shared data line. More...
#include <SPIHalfDuplex.h>
Inherits mbed::SPI.
Public Member Functions | |
| SPIHalfDuplex (PinName mosi, PinName miso, PinName sclk) | |
| Create a SPI half-duplex master connected to the specified pins. | |
| virtual int | write (int value) |
| Write to the SPI Slave and return the response. | |
| void | slave_format (int sbits) |
| Set the number of databits expected from the slave, from 4-16. | |
| void | format (int bits, int mode=0) |
| Configure the data transmission format. | |
| void | frequency (int hz=1000000) |
| Set the spi bus clock frequency. | |
| virtual void | lock (void) |
| Acquire exclusive access to this SPI bus. | |
| virtual void | unlock (void) |
| Release exclusive access to this SPI bus. | |
| template<typename Type > | |
| int | transfer (const Type *tx_buffer, int tx_length, Type *rx_buffer, int rx_length, const event_callback_t &callback, int event=SPI_EVENT_COMPLETE) |
| Start non-blocking SPI transfer using 8bit buffers. | |
| void | abort_transfer () |
| Abort the on-going SPI transfer, and continue with transfer's in the queue if any. | |
| void | clear_transfer_buffer () |
| Clear the transaction buffer. | |
| void | abort_all_transfers () |
| Clear the transaction buffer and abort on-going transfer. | |
| int | set_dma_usage (DMAUsage usage) |
| Configure DMA usage suggestion for non-blocking transfers. | |
Protected Member Functions | |
| int | transfer (const void *tx_buffer, int tx_length, void *rx_buffer, int rx_length, unsigned char bit_width, const event_callback_t &callback, int event) |
| Common transfer method. | |
| void | irq_handler_asynch (void) |
| SPI IRQ handler. | |
| int | queue_transfer (const void *tx_buffer, int tx_length, void *rx_buffer, int rx_length, unsigned char bit_width, const event_callback_t &callback, int event) |
| void | start_transfer (const void *tx_buffer, int tx_length, void *rx_buffer, int rx_length, unsigned char bit_width, const event_callback_t &callback, int event) |
| Configures a callback, spi peripheral and initiate a new transfer. | |
| void | start_transaction (transaction_t *data) |
| Start a new transaction. | |
| void | dequeue_transaction () |
| Dequeue a transaction. | |
Detailed Description
A SPI half-duplex master, used for communicating with SPI slave devices over a shared data line.
The default format is set to 8-bits for both master and slave, and a clock frequency of 1MHz
Most SPI devies will also require Chip Select and Reset signals. These can be controlled using <DigitalOut> pins.
Although this is for a shared data line, both MISO and MOSI are defined, and should be tied together externally to the mbed. This class handles the tri-stating of the MOSI pin.
Example:
// Send a byte to a SPI half-duplex slave, and record the response #include "mbed.h" SPIHalfDuplex device(p5, p6, p7) // mosi, miso, sclk int main() { int respone = device.write(0xAA); }
Definition at line 42 of file SPIHalfDuplex.h.
Constructor & Destructor Documentation
| SPIHalfDuplex | ( | PinName | mosi, |
| PinName | miso, | ||
| PinName | sclk | ||
| ) |
Create a SPI half-duplex master connected to the specified pins.
Pin Options: (5, 6, 7) or (11, 12, 13)
mosi or miso can be specfied as NC if not used
- Parameters:
-
mosi SPI Master Out, Slave In pin miso SPI Master In, Slave Out pin sclk SPI Clock pin name (optional) A string to identify the object
Definition at line 16 of file SPIHalfDuplex.cpp.
Member Function Documentation
| void abort_all_transfers | ( | ) | [inherited] |
| void abort_transfer | ( | void | ) | [inherited] |
| void clear_transfer_buffer | ( | ) | [inherited] |
| void dequeue_transaction | ( | ) | [protected, inherited] |
| void format | ( | int | bits, |
| int | mode = 0 |
||
| ) | [inherited] |
| void frequency | ( | int | hz = 1000000 ) |
[inherited] |
| void irq_handler_asynch | ( | void | ) | [protected, inherited] |
| void lock | ( | void | ) | [virtual, inherited] |
| int queue_transfer | ( | const void * | tx_buffer, |
| int | tx_length, | ||
| void * | rx_buffer, | ||
| int | rx_length, | ||
| unsigned char | bit_width, | ||
| const event_callback_t & | callback, | ||
| int | event | ||
| ) | [protected, inherited] |
- Parameters:
-
tx_buffer The TX buffer with data to be transfered. If NULL is passed, the default SPI value is sent tx_length The length of TX buffer in bytes rx_buffer The RX buffer which is used for received data. If NULL is passed, received data are ignored rx_length The length of RX buffer in bytes bit_width The buffers element width callback The event callback function event The logical OR of events to modify
- Returns:
- Zero if a transfer was added to the queue, or -1 if the queue is full
| int set_dma_usage | ( | DMAUsage | usage ) | [inherited] |
| void slave_format | ( | int | sbits ) |
Set the number of databits expected from the slave, from 4-16.
- Parameters:
-
sbits Number of expected bits in the slave response
Definition at line 22 of file SPIHalfDuplex.cpp.
| void start_transaction | ( | transaction_t * | data ) | [protected, inherited] |
| void start_transfer | ( | const void * | tx_buffer, |
| int | tx_length, | ||
| void * | rx_buffer, | ||
| int | rx_length, | ||
| unsigned char | bit_width, | ||
| const event_callback_t & | callback, | ||
| int | event | ||
| ) | [protected, inherited] |
Configures a callback, spi peripheral and initiate a new transfer.
- Parameters:
-
tx_buffer The TX buffer with data to be transfered. If NULL is passed, the default SPI value is sent tx_length The length of TX buffer in bytes rx_buffer The RX buffer which is used for received data. If NULL is passed, received data are ignored rx_length The length of RX buffer in bytes bit_width The buffers element width callback The event callback function event The logical OR of events to modify
| int transfer | ( | const Type * | tx_buffer, |
| int | tx_length, | ||
| Type * | rx_buffer, | ||
| int | rx_length, | ||
| const event_callback_t & | callback, | ||
| int | event = SPI_EVENT_COMPLETE |
||
| ) | [inherited] |
Start non-blocking SPI transfer using 8bit buffers.
- Parameters:
-
tx_buffer The TX buffer with data to be transfered. If NULL is passed, the default SPI value is sent tx_length The length of TX buffer in bytes rx_buffer The RX buffer which is used for received data. If NULL is passed, received data are ignored rx_length The length of RX buffer in bytes callback The event callback function event The logical OR of events to modify. Look at spi hal header file for SPI events.
- Returns:
- Zero if the transfer has started, or -1 if SPI peripheral is busy
| int transfer | ( | const void * | tx_buffer, |
| int | tx_length, | ||
| void * | rx_buffer, | ||
| int | rx_length, | ||
| unsigned char | bit_width, | ||
| const event_callback_t & | callback, | ||
| int | event | ||
| ) | [protected, inherited] |
Common transfer method.
- Parameters:
-
tx_buffer The TX buffer with data to be transfered. If NULL is passed, the default SPI value is sent tx_length The length of TX buffer in bytes rx_buffer The RX buffer which is used for received data. If NULL is passed, received data are ignored rx_length The length of RX buffer in bytes bit_width The buffers element width callback The event callback function event The logical OR of events to modify
- Returns:
- Zero if the transfer has started or was added to the queue, or -1 if SPI peripheral is busy/buffer is full
| void unlock | ( | void | ) | [virtual, inherited] |
Generated on Tue Jul 12 2022 12:29:13 by
1.7.2
