Skip to content

Commit 29a5400

Browse files
committed
Bugfix Adafruit_ILI9341_STM
readcommand8() toggles _sclk, but when using hwSPI it's set to 0, ie. it's toggling GPIO0, which it obviously shouldn't be doing. Also, when SPI-transactions had been enabled the SPI-bus speed was set to only 8MHz -- now we set it to 36MHz on STM32F1.
1 parent 8c1e061 commit 29a5400

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

STM32F1/libraries/Adafruit_ILI9341_STM/Adafruit_ILI9341_STM.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,11 @@ void Adafruit_ILI9341_STM::writedata(uint8_t c) {
103103
#ifdef SPI_HAS_TRANSACTION
104104
static inline void spi_begin(void) __attribute__((always_inline));
105105
static inline void spi_begin(void) {
106+
#ifdef __STM32F1__
107+
SPI.beginTransaction(SPISettings(36000000, MSBFIRST, SPI_MODE0));
108+
#else
106109
SPI.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE0));
110+
#endif
107111
}
108112
static inline void spi_end(void) __attribute__((always_inline));
109113
static inline void spi_end(void) {
@@ -762,7 +766,7 @@ uint8_t Adafruit_ILI9341_STM::readcommand8(uint8_t c, uint8_t index) {
762766
digitalWrite(_cs, HIGH);
763767

764768
digitalWrite(_dc, LOW);
765-
digitalWrite(_sclk, LOW);
769+
if(_sclk) digitalWrite(_sclk, LOW);
766770
digitalWrite(_cs, LOW);
767771
spiwrite(c);
768772

0 commit comments

Comments
 (0)