You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.7 KiB
61 lines
1.7 KiB
3 months ago
|
#ifndef _SPI_H_
|
||
|
#define _SPI_H_
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <stdint.h>
|
||
|
#include <fcntl.h>
|
||
|
#include <unistd.h>
|
||
|
#include <pthread.h>
|
||
|
#include <sys/ioctl.h>
|
||
|
#include <linux/spi/spidev.h>
|
||
|
|
||
|
#define SPI_DEVICE "/dev/spidev0.0"
|
||
|
#define SPI_MODULE SPI_MODE_1
|
||
|
#define SPI_MAX_SPEED ( 25 * 1000 * 1000)
|
||
|
#define SPI_NBITS 8
|
||
|
#define SPI_FIRST 0
|
||
|
#define SPI_BUFFER_NUM 1024
|
||
|
|
||
|
|
||
|
class Spi
|
||
|
{
|
||
|
public :
|
||
|
Spi(char *para_dev = SPI_DEVICE , int para_mode = SPI_MODULE , int para_max_speed = SPI_MAX_SPEED , int para_nbits = SPI_NBITS , int para_first = SPI_FIRST) ;
|
||
|
~Spi() ;
|
||
|
void spiMutexLock() ;
|
||
|
void spiMutexUnlock() ;
|
||
|
void printTxBuffer() ;
|
||
|
void printRxBuffer() ;
|
||
|
int getTxLength() ;
|
||
|
int getRxLength() ;
|
||
|
uint8_t* getTxBuffer() ;
|
||
|
uint8_t* getRxBuffer() ;
|
||
|
|
||
|
void printTxBuffer(uint8_t *para_tx_buffer , int para_tx_len) ;
|
||
|
void printRxBuffer(uint8_t *para_rx_buffer , int para_rx_len) ;
|
||
|
|
||
|
int singleWriteSpi(unsigned char *para_tx_buffer , int para_tx_len) ;
|
||
|
int singleReadSpi(unsigned char *para_rx_buffer , int para_rx_len) ;
|
||
|
int writeSpi(unsigned char *para_tx_buffer , int para_tx_len) ;
|
||
|
int readSpi( unsigned char *para_rx_buffer , int para_rx_len) ;
|
||
|
int readWriteSpi(unsigned char *para_tx_buffer , unsigned char *para_rx_buffer , int para_tx_len , int para_rx_len ) ;
|
||
|
private :
|
||
|
int spi_fd ;
|
||
|
int mode ;
|
||
|
int max_speed ;
|
||
|
int nbits ;
|
||
|
int first ;
|
||
|
int ret ;
|
||
|
pthread_mutex_t spi_mutex ;
|
||
|
|
||
|
uint8_t tx_buffer[SPI_BUFFER_NUM] ;
|
||
|
uint8_t rx_buffer[SPI_BUFFER_NUM] ;
|
||
|
} ;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|