@@ -172,12 +172,15 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
172
172
173
173
const pyb_spi_obj_t * self ;
174
174
const pin_obj_t * pins [4 ];
175
+ pins [0 ] = NULL ;
175
176
176
177
if (0 ) {
177
178
#if defined(MICROPY_HW_SPI1_SCK )
178
179
} else if (spi -> Instance == SPI1 ) {
179
180
self = & pyb_spi_obj [0 ];
181
+ #if defined(MICROPY_HW_SPI1_NSS )
180
182
pins [0 ] = & MICROPY_HW_SPI1_NSS ;
183
+ #endif
181
184
pins [1 ] = & MICROPY_HW_SPI1_SCK ;
182
185
pins [2 ] = & MICROPY_HW_SPI1_MISO ;
183
186
pins [3 ] = & MICROPY_HW_SPI1_MOSI ;
@@ -187,7 +190,9 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
187
190
#if defined(MICROPY_HW_SPI2_SCK )
188
191
} else if (spi -> Instance == SPI2 ) {
189
192
self = & pyb_spi_obj [1 ];
193
+ #if defined(MICROPY_HW_SPI2_NSS )
190
194
pins [0 ] = & MICROPY_HW_SPI2_NSS ;
195
+ #endif
191
196
pins [1 ] = & MICROPY_HW_SPI2_SCK ;
192
197
pins [2 ] = & MICROPY_HW_SPI2_MISO ;
193
198
pins [3 ] = & MICROPY_HW_SPI2_MOSI ;
@@ -197,7 +202,9 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
197
202
#if defined(MICROPY_HW_SPI3_SCK )
198
203
} else if (spi -> Instance == SPI3 ) {
199
204
self = & pyb_spi_obj [2 ];
205
+ #if defined(MICROPY_HW_SPI3_NSS )
200
206
pins [0 ] = & MICROPY_HW_SPI3_NSS ;
207
+ #endif
201
208
pins [1 ] = & MICROPY_HW_SPI3_SCK ;
202
209
pins [2 ] = & MICROPY_HW_SPI3_MISO ;
203
210
pins [3 ] = & MICROPY_HW_SPI3_MOSI ;
@@ -207,7 +214,9 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
207
214
#if defined(MICROPY_HW_SPI4_SCK )
208
215
} else if (spi -> Instance == SPI4 ) {
209
216
self = & pyb_spi_obj [3 ];
217
+ #if defined(MICROPY_HW_SPI4_NSS )
210
218
pins [0 ] = & MICROPY_HW_SPI4_NSS ;
219
+ #endif
211
220
pins [1 ] = & MICROPY_HW_SPI4_SCK ;
212
221
pins [2 ] = & MICROPY_HW_SPI4_MISO ;
213
222
pins [3 ] = & MICROPY_HW_SPI4_MOSI ;
@@ -217,7 +226,9 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
217
226
#if defined(MICROPY_HW_SPI5_SCK )
218
227
} else if (spi -> Instance == SPI5 ) {
219
228
self = & pyb_spi_obj [4 ];
229
+ #if defined(MICROPY_HW_SPI5_NSS )
220
230
pins [0 ] = & MICROPY_HW_SPI5_NSS ;
231
+ #endif
221
232
pins [1 ] = & MICROPY_HW_SPI5_SCK ;
222
233
pins [2 ] = & MICROPY_HW_SPI5_MISO ;
223
234
pins [3 ] = & MICROPY_HW_SPI5_MOSI ;
@@ -227,7 +238,9 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
227
238
#if defined(MICROPY_HW_SPI6_SCK )
228
239
} else if (spi -> Instance == SPI6 ) {
229
240
self = & pyb_spi_obj [5 ];
241
+ #if defined(MICROPY_HW_SPI6_NSS )
230
242
pins [0 ] = & MICROPY_HW_SPI6_NSS ;
243
+ #endif
231
244
pins [1 ] = & MICROPY_HW_SPI6_SCK ;
232
245
pins [2 ] = & MICROPY_HW_SPI6_MISO ;
233
246
pins [3 ] = & MICROPY_HW_SPI6_MOSI ;
@@ -239,7 +252,7 @@ void spi_init(SPI_HandleTypeDef *spi, bool enable_nss_pin) {
239
252
return ;
240
253
}
241
254
242
- for (uint i = (enable_nss_pin ? 0 : 1 ); i < 4 ; i ++ ) {
255
+ for (uint i = (enable_nss_pin && pins [ 0 ] ? 0 : 1 ); i < 4 ; i ++ ) {
243
256
mp_hal_gpio_set_af (pins [i ], & GPIO_InitStructure , AF_FN_SPI , (self - & pyb_spi_obj [0 ]) + 1 );
244
257
}
245
258
0 commit comments