@@ -63,6 +63,7 @@ uint8_t QwiicKX13xCore::beginSPICore(uint8_t CSPin, uint32_t spiPortSpeed, SPICl
6363    return  status;
6464  else     
6565    return  partID;
66+   
6667}
6768
6869//  This function sets various register with regards to these pre-determined
@@ -413,7 +414,8 @@ KX13X_STATUS_t QwiicKX13xCore::readRegister(uint8_t *dataPointer, uint8_t reg)
413414		_spiPort->beginTransaction (kxSPISettings);
414415		digitalWrite (_cs, LOW);
415416		reg |= SPI_READ; 
416-     *dataPointer = _spiPort->transfer (reg);
417+     _spiPort->transfer (reg);
418+     *dataPointer = _spiPort->transfer (0x00 );
417419		digitalWrite (_cs, HIGH);
418420		_spiPort->endTransaction ();
419421    return  KX13X_SUCCESS;
@@ -444,9 +446,10 @@ KX13X_STATUS_t QwiicKX13xCore::readMultipleRegisters(uint8_t reg, uint8_t dataBu
444446		_spiPort->beginTransaction (kxSPISettings);
445447		digitalWrite (_cs, LOW);
446448		reg |= SPI_READ;
447- 		dataBuffer[0 ] = _spiPort->transfer (reg); // first byte on transfer of address and read bit
449+     _spiPort->transfer (reg);
450+ 		dataBuffer[0 ] = _spiPort->transfer (0x00 ); // first byte on transfer of address and read bit
448451		for (size_t  i = 1 ; i < numBytes; i++) {
449- 			dataBuffer[i] = _spiPort->transfer (0 ); // Assuming this will initiate auto-increment behavior
452+ 			dataBuffer[i] = _spiPort->transfer (0x00 ); // Assuming this will initiate auto-increment behavior
450453		}
451454		digitalWrite (_cs, HIGH);
452455		_spiPort->endTransaction ();
@@ -528,7 +531,7 @@ KX13X_STATUS_t QwiicKX13xCore::writeRegister(uint8_t reg, uint8_t mask, uint8_t
528531
529532		_spiPort->beginTransaction (kxSPISettings);
530533		digitalWrite (_cs, LOW);
531- 		_spiPort->transfer (reg |=  SPI_WRITE);
534+ 		_spiPort->transfer (reg | SPI_WRITE);
532535		_spiPort->transfer (tempRegVal); 
533536		digitalWrite (_cs, HIGH);
534537		_spiPort->endTransaction ();
0 commit comments