diff options
| author | Hierophect <hierophect@gmail.com> | 2019-09-30 13:33:20 -0400 |
|---|---|---|
| committer | Hierophect <hierophect@gmail.com> | 2019-09-30 13:33:20 -0400 |
| commit | 1f90cffc896b84cdc571aef88dfe09655471adfe (patch) | |
| tree | 20ebeec7f58edb1d4f3b29ab0d69d8cd8afe2403 | |
| parent | 56eb9666ead5a6d59e1bbc7a6850d9420cd8385b (diff) | |
protect against edge case
| -rw-r--r-- | ports/stm32f4/common-hal/busio/SPI.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ports/stm32f4/common-hal/busio/SPI.c b/ports/stm32f4/common-hal/busio/SPI.c index a13b3dfdb..d64ec542a 100644 --- a/ports/stm32f4/common-hal/busio/SPI.c +++ b/ports/stm32f4/common-hal/busio/SPI.c @@ -97,10 +97,12 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, if (mcu_spi_mosi_list[j].pin == mosi) { //miso for(uint k=0; k<miso_len;k++) { - if ((mcu_spi_miso_list[k].pin == miso) + if ((mcu_spi_miso_list[k].pin == miso) //everything needs the same index && (mcu_spi_sck_list[i].spi_index == mcu_spi_mosi_list[j].spi_index) && (mcu_spi_sck_list[i].spi_index == mcu_spi_miso_list[k].spi_index)) { - //everything needs the same index + //keep looking if the SPI is taken, edge case + if(reserved_spi[mcu_spi_sck_list[i].spi_index-1]) continue; + //store pins if not self->sck = &mcu_spi_sck_list[j]; self->mosi = &mcu_spi_mosi_list[j]; self->miso = &mcu_spi_miso_list[k]; |
