Loading...
Searching...
No Matches
SPI.h
Go to the documentation of this file.
1
9#pragma once
10
11#include "Arduino.h"
12#include "api/HardwareSPI.h"
13#include "hardware/spi.h"
14
20class PhyduinoSPI : public arduino::HardwareSPI {
21public:
29 PhyduinoSPI(spi_inst_t* spi, pin_size_t sck, pin_size_t mosi, pin_size_t miso)
30 : spi_(spi), sck_(sck), mosi_(mosi), miso_(miso) {}
31
38 void begin() override;
39
43 void end() override;
44
49 void beginTransaction(arduino::SPISettings settings) override;
50
54 void endTransaction() override {}
55
61 uint8_t transfer(uint8_t data) override;
62
68 uint16_t transfer16(uint16_t data) override;
69
75 void transfer(void* buffer, size_t count) override;
76
80 void usingInterrupt(int) override {}
81 void notUsingInterrupt(int) override {}
82 void attachInterrupt() override {}
83 void detachInterrupt() override {}
85
86private:
87 spi_inst_t* spi_;
88 pin_size_t sck_, mosi_, miso_;
89 arduino::SPISettings settings_;
90 bool lsb_first_ = false;
91};
92
94extern PhyduinoSPI SPI;
Entry header for sketches: Arduino API + board pin map + Phyduino extras.
PhyduinoSPI SPI
SPI on the header: SCK D13, MOSI D11, MISO D12.
SPI controller on one RP2040 SPI peripheral; sketches use SPI.
Definition SPI.h:20
void notUsingInterrupt(int) override
Does nothing.
Definition SPI.h:81
void beginTransaction(arduino::SPISettings settings) override
Applies the clock, bit order and mode for the next transfers.
void usingInterrupt(int) override
Does nothing.
Definition SPI.h:80
void begin() override
Starts the controller and connects SCK, MOSI and MISO.
void transfer(void *buffer, size_t count) override
Sends a buffer and replaces its contents with the bytes received.
PhyduinoSPI(spi_inst_t *spi, pin_size_t sck, pin_size_t mosi, pin_size_t miso)
Binds the controller to an SPI peripheral and its pins; nothing is set up until begin().
Definition SPI.h:29
void attachInterrupt() override
Does nothing.
Definition SPI.h:82
uint16_t transfer16(uint16_t data) override
Sends 16 bits as two bytes, in the bit order of the transaction.
void detachInterrupt() override
Does nothing.
Definition SPI.h:83
void endTransaction() override
Ends a transaction. Does nothing; kept for Arduino compatibility.
Definition SPI.h:54
uint8_t transfer(uint8_t data) override
Sends one byte and returns the byte received at the same time.
void end() override
Stops the controller and frees its pins.
uint8_t pin_size_t
Type for Arduino pin numbers (uint8_t).
Definition Common.h:112