Bladeren bron

Align ChibiOS spi_master behaviour with AVR (#11404)

* Align ChibiOS spi_master behaviour with AVR

* Rollback `spi_transmit()` and `spi_receive()` to preserve DMA
Ryan 4 jaren geleden
bovenliggende
commit
f3ac792c09
1 gewijzigde bestanden met toevoegingen van 8 en 2 verwijderingen
  1. 8 2
      drivers/chibios/spi_master.c

+ 8 - 2
drivers/chibios/spi_master.c

@@ -115,11 +115,17 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
     return true;
 }
 
-spi_status_t spi_write(uint8_t data) { return spi_transmit(&data, 1); }
+spi_status_t spi_write(uint8_t data) {
+    uint8_t rxData;
+    spiExchange(&SPI_DRIVER, 1, &data, &rxData);
+
+    return rxData;
+}
 
 spi_status_t spi_read(void) {
     uint8_t data = 0;
-    spi_receive(&data, 1);
+    spiReceive(&SPI_DRIVER, 1, &data);
+
     return data;
 }