Skip to content

Commit bc41fb6

Browse files
committed
fix wire requestFrom bugs
1. did not have default value for stopBit 2. did not use the 'address' parameter - instead relied on the _txAddress to be set in 'beginTransmission' but that is bad b/c you should be able to use 'requestFrom' completely independently
1 parent 24ac379 commit bc41fb6

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

libraries/Wire/src/Wire.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ uint8_t TwoWire::requestFrom(uint8_t address, size_t quantity, bool stopBit)
108108
_rxBuffer.clear();
109109

110110
am_hal_iom_transfer_t iomTransfer = {0};
111-
iomTransfer.uPeerInfo.ui32I2CDevAddr = _txAddress;
111+
iomTransfer.uPeerInfo.ui32I2CDevAddr = address;
112112
iomTransfer.ui32InstrLen = 0; // 8-bit transfers
113113
iomTransfer.ui32Instr = 0; // Offset;
114114
iomTransfer.ui32NumBytes = quantity; // How many bytes to receive

libraries/Wire/src/Wire.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class TwoWire : public Stream, public IOMaster {
4747
uint8_t endTransmission(bool stopBit);
4848
uint8_t endTransmission(void);
4949

50-
uint8_t requestFrom(uint8_t address, size_t quantity, bool stopBit);
50+
uint8_t requestFrom(uint8_t address, size_t quantity, bool stopBit = true);
5151
uint8_t requestFrom(uint8_t address, size_t quantity);
5252

5353
size_t write(uint8_t data);
@@ -77,7 +77,7 @@ class TwoWire : public Stream, public IOMaster {
7777

7878

7979
RingBufferN<AP3_WIRE_RX_BUFFER_LEN> _rxBuffer;// RX Buffer
80-
RingBufferN<AP3_WIRE_TX_BUFFER_LEN> _txBuffer;//TX buffer
80+
RingBufferN<AP3_WIRE_TX_BUFFER_LEN> _txBuffer;// TX buffer
8181
uint8_t _linearBugger[AP3_WIRE_LINEAR_BUFFER_LEN]; // ToDo: choose a more efficient way to handle this
8282
uint8_t txAddress;
8383

0 commit comments

Comments
 (0)