71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
#pragma once
|
|
#include "mcp2521_hardware_handle.hpp"
|
|
|
|
#ifdef ESP_PLATFORM
|
|
|
|
#include "driver/gpio.h"
|
|
#include "driver/spi_master.h"
|
|
|
|
class MCP2521_Hardware_Handle_ESP : public MCP2521_Hardware_Handle {
|
|
char spi_tmp_buffer;
|
|
|
|
spi_bus_config_t * spi_bus_config;
|
|
spi_device_interface_config_t spi_device_config;
|
|
spi_device_handle_t spi_device_handle;
|
|
|
|
public:
|
|
MCP2521_Hardware_Handle_ESP(
|
|
spi_host_device_t spi_host,
|
|
spi_bus_config_t *bus_config,
|
|
gpio_num_t mosi,
|
|
gpio_num_t miso,
|
|
gpio_num_t sclk,
|
|
gpio_num_t cs,
|
|
gpio_num_t int_pin
|
|
);
|
|
|
|
MCP2521_Hardware_Handle_ESP(
|
|
spi_host_device_t spi_host,
|
|
spi_bus_config_t *bus_config,
|
|
gpio_num_t cs,
|
|
gpio_num_t int_pin
|
|
);
|
|
|
|
static void initSPIBus(
|
|
spi_host_device_t spi_host,
|
|
gpio_num_t mosi,
|
|
gpio_num_t miso,
|
|
gpio_num_t sclk,
|
|
spi_bus_config_t *bus_config
|
|
);
|
|
|
|
void initSPIDevice(
|
|
spi_host_device_t spi_host,
|
|
gpio_num_t cs
|
|
);
|
|
|
|
void initPins(
|
|
gpio_num_t int_pin
|
|
);
|
|
|
|
~MCP2521_Hardware_Handle_ESP();
|
|
|
|
spi_bus_config_t * getSPI_bus_config();
|
|
|
|
// Inherited from MCP2521_Hardware_Handle
|
|
void execute(uint8_t cmd);
|
|
void execute(uint8_t cmd, uint8_t address);
|
|
|
|
void read(uint8_t cmd, uint8_t *data, size_t length, uint8_t address);
|
|
void read(uint8_t cmd, uint8_t *data, size_t length);
|
|
uint8_t read(uint8_t cmd, uint8_t address);
|
|
uint8_t read(uint8_t cmd);
|
|
|
|
void write(uint8_t cmd, uint8_t *data, size_t length, uint8_t address);
|
|
void write(uint8_t cmd, uint8_t *data, size_t length);
|
|
void write(uint8_t cmd, uint8_t data, uint8_t address);
|
|
void write(uint8_t cmd, uint8_t data);
|
|
};
|
|
|
|
#endif
|