HAL_ChibiOS: don't call spiStart() unless bus is stopped

This commit is contained in:
Andrew Tridgell 2018-02-04 06:59:43 +11:00
parent 2513e60e3c
commit 63a825dd2c

View File

@ -264,6 +264,10 @@ bool SPIDevice::set_chip_select(bool set)
bus.spicfg.sspad = PAL_PAD(device_desc.pal_line);
bus.spicfg.cr1 = (uint16_t)(freq_flag | device_desc.mode);
bus.spicfg.cr2 = 0;
if (bus.spi_started) {
spiStop(spi_devices[device_desc.bus].driver);
bus.spi_started = false;
}
spiStart(spi_devices[device_desc.bus].driver, &bus.spicfg); /* Setup transfer parameters. */
bus.spi_started = true;
spiSelectI(spi_devices[device_desc.bus].driver); /* Slave Select assertion. */