C++ DevKit
C++ set of OOP library
Loading...
Searching...
No Matches
hw_spi.h
Go to the documentation of this file.
1
11
12#pragma once
13
14#include "hardware/spi.h"
15
16#include "pico/stdlib.h"
17
22{
24 spi_inst_t *spi = spi1;
26 uint sck_pin = 10;
28 uint tx_pin = 11;
30 uint rx_pin = 12;
32 uint cs_pin = 13;
34 uint baud_rate_Hz = 1000 * 1000;
36 spi_cpha_t clk_phase = SPI_CPHA_0;
38 spi_cpol_t spi_polarity = SPI_CPOL_0;
40 spi_order_t bit_order = SPI_MSB_FIRST;
41};
42
48{
49private:
51 spi_inst_t *spi;
52
53public:
61
69 int burst_write_8(uint8_t *src, size_t len);
77 int burst_write_16(uint16_t *src, size_t len);
78
87 int burst_write_read_8(uint8_t *src, uint8_t *dest, size_t len);
88
95 int single_write_8(uint8_t byte_value);
102 int single_write_16(uint16_t word_value);
103
110 int single_read_8(uint8_t *dest);
111
120 int burst_read_8(uint8_t repeated_tx_data, uint8_t *dest, size_t len);
121
129 bool device_is_connected(uint8_t slave_address);
130};
int burst_write_8(uint8_t *src, size_t len)
send a serie of 8 bit data on the SPI MOSI port
Definition hw_spi.cpp:19
bool device_is_connected(uint8_t slave_address)
a test that checks if the slave_address device is connected
Definition hw_spi.cpp:63
int single_read_8(uint8_t *dest)
read a single byte on the SPI MISO port
Definition hw_spi.cpp:51
int single_write_8(uint8_t byte_value)
write a single byte on the SPI MOSI port
Definition hw_spi.cpp:37
int burst_write_16(uint16_t *src, size_t len)
send a serie of 16 bit data on the SPI MOSI port
Definition hw_spi.cpp:25
int burst_write_read_8(uint8_t *src, uint8_t *dest, size_t len)
read / write a serie of 8 bit data on the SPI MISO/MOSI ports
Definition hw_spi.cpp:31
int burst_read_8(uint8_t repeated_tx_data, uint8_t *dest, size_t len)
read a serie of byte on the SPI MISO port
Definition hw_spi.cpp:57
HW_SPI_Master(struct_ConfigMasterSPI master_config)
Construct a new hw spi master object.
Definition hw_spi.cpp:3
int single_write_16(uint16_t word_value)
write a single 16bit word on the SPI MOSI port
Definition hw_spi.cpp:44
The configuration data of SPI interface used as Master.
Definition hw_spi.h:22
uint sck_pin
the associated gpio pin for clock
Definition hw_spi.h:26
uint rx_pin
the associated gpio pin for RX (MISO)
Definition hw_spi.h:30
spi_inst_t * spi
the SPI interface used in the rp2040: spi0 or spi1
Definition hw_spi.h:24
uint tx_pin
the associated gpio pin for TX (MOSI)
Definition hw_spi.h:28
spi_cpha_t clk_phase
clock phase (default to standard 0)
Definition hw_spi.h:36
uint baud_rate_Hz
the SPI baudrate(default to 1MHz)
Definition hw_spi.h:34
uint cs_pin
the associated gpio pin for Chip Select
Definition hw_spi.h:32
spi_cpol_t spi_polarity
signal polarity (default to standard 0)
Definition hw_spi.h:38
spi_order_t bit_order
bit order (default to MSB first)
Definition hw_spi.h:40