Skip to content

Commit b667007

Browse files
committed
improve error readability
1 parent 1f90cff commit b667007

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

  • ports/stm32f4/common-hal/busio

ports/stm32f4/common-hal/busio/SPI.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
8989
uint8_t mosi_len = sizeof(mcu_spi_mosi_list)/sizeof(*mcu_spi_mosi_list);
9090
uint8_t miso_len = sizeof(mcu_spi_miso_list)/sizeof(*mcu_spi_miso_list);
9191

92+
bool spi_taken = false;
9293
//sck
9394
for(uint i=0; i<sck_len;i++) {
9495
if (mcu_spi_sck_list[i].pin == sck) {
@@ -101,7 +102,10 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
101102
&& (mcu_spi_sck_list[i].spi_index == mcu_spi_mosi_list[j].spi_index)
102103
&& (mcu_spi_sck_list[i].spi_index == mcu_spi_miso_list[k].spi_index)) {
103104
//keep looking if the SPI is taken, edge case
104-
if(reserved_spi[mcu_spi_sck_list[i].spi_index-1]) continue;
105+
if(reserved_spi[mcu_spi_sck_list[i].spi_index-1]) {
106+
spi_taken = true;
107+
continue;
108+
}
105109
//store pins if not
106110
self->sck = &mcu_spi_sck_list[j];
107111
self->mosi = &mcu_spi_mosi_list[j];
@@ -118,11 +122,11 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
118122
if(self->sck!=NULL && self->mosi!=NULL && self->miso!=NULL ) {
119123
SPIx = mcu_spi_banks[self->sck->spi_index-1];
120124
} else {
121-
mp_raise_RuntimeError(translate("Invalid SPI pin selection"));
122-
}
123-
124-
if(reserved_spi[self->sck->spi_index-1]) {
125-
mp_raise_RuntimeError(translate("Hardware busy, try alternative pins"));
125+
if (spi_taken) {
126+
mp_raise_RuntimeError(translate("Hardware busy, try alternative pins"));
127+
} else {
128+
mp_raise_RuntimeError(translate("Invalid SPI pin selection"));
129+
}
126130
}
127131

128132
//Start GPIO for each pin

0 commit comments

Comments
 (0)