arduino / arduino/ArduinoCore-API

SPI library does not have functions for sending or receiving data blocks

Open
#90 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
306
Forks
150
PR merge metrics
No merged PRs in 30d

Description

SPI library does not have functions for sending or receiving data blocks.
SPI.transfer has disadvantages.
1. If I need to read from SPI a large block of data I often need to fill an array with a constant, f.e. 0xff
2. If I need to send data block to SPI several times I must fill this array again after each sending because it is filled with data read (that I don't need anyway)

I suggest to add functions like
SPI.send(void* data, size_t len, unsigned char outbyte = 0xff)
and
SPI.receive(void* data, size_t len)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by examining the existing SPI.transfer entry point and the ArduinoCore-API SPI interface. Determine how block send and receive operations should handle the proposed data, length, and 0xff arguments, including repeated sends without rebuilding the buffer. Done means the API provides both operations and their behavior is covered for large reads and repeated writes.

Written by the indexing model from the issue text.

Assessment

Tech stack
arduino, cpp
Domain
api, embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.