初始化提交
This commit is contained in:
93
arduino-cli/libraries/RF24/utility/SPIDEV/spi.h
Normal file
93
arduino-cli/libraries/RF24/utility/SPIDEV/spi.h
Normal file
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
* File: spi.h
|
||||
* Author: Purinda Gunasekara <purinda@gmail.com>
|
||||
*
|
||||
* Created on 24 June 2012, 11:00 AM
|
||||
*/
|
||||
|
||||
#ifndef SPI_H
|
||||
#define SPI_H
|
||||
|
||||
/**
|
||||
* @file spi.h
|
||||
* \cond HIDDEN_SYMBOLS
|
||||
* Class declaration for SPI helper files
|
||||
*/
|
||||
|
||||
/**
|
||||
* Example GPIO.h file
|
||||
*
|
||||
* @defgroup SPI SPI Example
|
||||
*
|
||||
* See RF24_arch_config.h for additional information
|
||||
* @{
|
||||
*/
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdexcept>
|
||||
|
||||
#include "../../RF24_config.h"
|
||||
|
||||
/** Specific excpetion for SPI errors */
|
||||
class SPIException : public std::runtime_error {
|
||||
public:
|
||||
explicit SPIException(const std::string& msg)
|
||||
:std::runtime_error(msg)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
class SPI {
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* SPI constructor
|
||||
*/
|
||||
SPI();
|
||||
|
||||
/**
|
||||
* Start SPI
|
||||
*/
|
||||
void begin(int busNo, uint32_t spi_speed = RF24_SPI_SPEED);
|
||||
|
||||
/**
|
||||
* Transfer a single byte
|
||||
* @param tx Byte to send
|
||||
* @return Data returned via spi
|
||||
*/
|
||||
uint8_t transfer(uint8_t tx);
|
||||
|
||||
/**
|
||||
* Transfer a buffer of data
|
||||
* @param tbuf Transmit buffer
|
||||
* @param rbuf Receive buffer
|
||||
* @param len Length of the data
|
||||
*/
|
||||
void transfernb(char* tbuf, char* rbuf, uint32_t len);
|
||||
|
||||
/**
|
||||
* Transfer a buffer of data without an rx buffer
|
||||
* @param buf Pointer to a buffer of data
|
||||
* @param len Length of the data
|
||||
*/
|
||||
void transfern(char* buf, uint32_t len)
|
||||
{
|
||||
transfernb(buf, buf, len);
|
||||
}
|
||||
|
||||
~SPI();
|
||||
|
||||
private:
|
||||
|
||||
int fd;
|
||||
uint32_t _spi_speed;
|
||||
bool spiIsInitialized = false;
|
||||
void init(uint32_t spi_speed = RF24_SPI_SPEED);
|
||||
};
|
||||
|
||||
/**
|
||||
* \endcond
|
||||
*/
|
||||
/*@}*/
|
||||
#endif /* SPI_H */
|
||||
Reference in New Issue
Block a user