Skip to content

Commit aa5e336

Browse files
committedJan 11, 2018
Added setXXX methods to change used pins of an instance
Example to change pins used by Wire instance (by default use defined SDA/SCL ): Wire.setSDA(A4); Wire.setSCL(PC2); Wire.begin(); Example to change pins used by SPI instance (by default use defined MISO/MOSI/SCK): SPI.setMOSI(22); SPI.setMISO(PA3); SPI.begin(); Signed-off-by: Frederic.Pillon <[email protected]>
1 parent bd01ed6 commit aa5e336

File tree

4 files changed

+22
-1
lines changed

4 files changed

+22
-1
lines changed
 

‎libraries/SPI/keywords.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ transfer KEYWORD2
1717
#setBitOrder KEYWORD2
1818
setDataMode KEYWORD2
1919
setClockDivider KEYWORD2
20-
20+
setMISO KEYWORD2
21+
setMOSI KEYWORD2
22+
setSCLK KEYWORD2
23+
setSSEL KEYWORD2
2124

2225
#######################################
2326
# Constants (LITERAL1)

‎libraries/SPI/src/SPI.h

+11
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,17 @@ class SPIClass {
112112
SPIClass();
113113
SPIClass(uint8_t mosi, uint8_t miso, uint8_t sclk, uint8_t ssel = (uint8_t)NC);
114114

115+
// setMISO/MOSI/SCLK/SSEL have to be called before begin()
116+
void setMISO(uint32_t miso) { _spi.pin_miso = digitalPinToPinName(miso); };
117+
void setMOSI(uint32_t mosi) { _spi.pin_mosi = digitalPinToPinName(mosi); };
118+
void setSCLK(uint32_t sclk) { _spi.pin_sclk = digitalPinToPinName(sclk); };
119+
void setSSEL(uint32_t ssel) { _spi.pin_ssel = digitalPinToPinName(ssel); };
120+
121+
void setMISO(PinName miso) { _spi.pin_miso = (miso); };
122+
void setMOSI(PinName mosi) { _spi.pin_mosi = (mosi); };
123+
void setSCLK(PinName sclk) { _spi.pin_sclk = (sclk); };
124+
void setSSEL(PinName ssel) { _spi.pin_ssel = (ssel); };
125+
115126
void begin(uint8_t _pin = CS_PIN_CONTROLLED_BY_USER);
116127
void end(void);
117128

‎libraries/Wire/keywords.txt

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ endTransmission KEYWORD2
1717
requestFrom KEYWORD2
1818
onReceive KEYWORD2
1919
onRequest KEYWORD2
20+
setSCL KEYWORD2
21+
setSDA KEYWORD2
2022

2123
#######################################
2224
# Instances (KEYWORD2)

‎libraries/Wire/src/Wire.h

+5
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ class TwoWire : public Stream
6767
public:
6868
TwoWire();
6969
TwoWire(uint8_t sda, uint8_t scl);
70+
// setSCL/SDA have to be called before begin()
71+
void setSCL(uint32_t scl) { _i2c.scl = digitalPinToPinName(scl); };
72+
void setSDA(uint32_t sda) { _i2c.sda = digitalPinToPinName(sda); };
73+
void setSCL(PinName scl) { _i2c.scl = scl; };
74+
void setSDA(PinName sda) { _i2c.sda = sda; };
7075
void begin();
7176
void begin(uint8_t);
7277
void begin(int);

0 commit comments

Comments
 (0)
Please sign in to comment.