5050#endif
5151
5252// these need to be set to valid values before anything in this file will work
53- STATIC SPI_HandleTypeDef * SPI_HANDLE = NULL ;
53+ STATIC const spi_t * SPI_HANDLE = NULL ;
5454STATIC const pin_obj_t * PIN_CS = NULL ;
5555STATIC const pin_obj_t * PIN_EN = NULL ;
5656STATIC const pin_obj_t * PIN_IRQ = NULL ;
@@ -134,17 +134,18 @@ void SpiOpen(gcSpiHandleRx pfRxHandler)
134134 wlan_tx_buffer [CC3000_TX_BUFFER_SIZE - 1 ] = CC3000_BUFFER_MAGIC_NUMBER ;
135135
136136 /* SPI configuration */
137- SPI_HANDLE -> Init .Mode = SPI_MODE_MASTER ;
138- SPI_HANDLE -> Init .Direction = SPI_DIRECTION_2LINES ;
139- SPI_HANDLE -> Init .DataSize = SPI_DATASIZE_8BIT ;
140- SPI_HANDLE -> Init .CLKPolarity = SPI_POLARITY_LOW ;
141- SPI_HANDLE -> Init .CLKPhase = SPI_PHASE_2EDGE ;
142- SPI_HANDLE -> Init .NSS = SPI_NSS_SOFT ;
143- SPI_HANDLE -> Init .BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8 ;
144- SPI_HANDLE -> Init .FirstBit = SPI_FIRSTBIT_MSB ;
145- SPI_HANDLE -> Init .TIMode = SPI_TIMODE_DISABLED ;
146- SPI_HANDLE -> Init .CRCCalculation = SPI_CRCCALCULATION_DISABLED ;
147- SPI_HANDLE -> Init .CRCPolynomial = 7 ;
137+ SPI_InitTypeDef * init = & SPI_HANDLE -> spi -> Init ;
138+ init -> Mode = SPI_MODE_MASTER ;
139+ init -> Direction = SPI_DIRECTION_2LINES ;
140+ init -> DataSize = SPI_DATASIZE_8BIT ;
141+ init -> CLKPolarity = SPI_POLARITY_LOW ;
142+ init -> CLKPhase = SPI_PHASE_2EDGE ;
143+ init -> NSS = SPI_NSS_SOFT ;
144+ init -> BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8 ;
145+ init -> FirstBit = SPI_FIRSTBIT_MSB ;
146+ init -> TIMode = SPI_TIMODE_DISABLED ;
147+ init -> CRCCalculation = SPI_CRCCALCULATION_DISABLED ;
148+ init -> CRCPolynomial = 7 ;
148149 spi_init (SPI_HANDLE , false);
149150
150151 // configure wlan CS and EN pins
@@ -167,7 +168,7 @@ void SpiOpen(gcSpiHandleRx pfRxHandler)
167168 actual communications start, it might be required */
168169 CS_LOW ();
169170 uint8_t buf [1 ];
170- HAL_SPI_Receive (SPI_HANDLE , buf , sizeof (buf ), SPI_TIMEOUT );
171+ HAL_SPI_Receive (SPI_HANDLE -> spi , buf , sizeof (buf ), SPI_TIMEOUT );
171172 CS_HIGH ();
172173
173174 // register EXTI
@@ -192,7 +193,7 @@ STATIC void SpiWriteDataSynchronous(unsigned char *data, unsigned short size)
192193{
193194 DEBUG_printf ("SpiWriteDataSynchronous(data=%p [%x %x %x %x], size=%u)\n" , data , data [0 ], data [1 ], data [2 ], data [3 ], size );
194195 __disable_irq ();
195- if (HAL_SPI_TransmitReceive (SPI_HANDLE , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
196+ if (HAL_SPI_TransmitReceive (SPI_HANDLE -> spi , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
196197 //BREAK();
197198 }
198199 __enable_irq ();
@@ -203,7 +204,7 @@ STATIC void SpiReadDataSynchronous(unsigned char *data, unsigned short size)
203204{
204205 memset (data , READ , size );
205206 __disable_irq ();
206- if (HAL_SPI_TransmitReceive (SPI_HANDLE , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
207+ if (HAL_SPI_TransmitReceive (SPI_HANDLE -> spi , data , data , size , SPI_TIMEOUT ) != HAL_OK ) {
207208 //BREAK();
208209 }
209210 __enable_irq ();
0 commit comments