drivers/cc3200: Update to work with new stm32 SPI API.

pull/1/head
Damien George 2018-02-05 13:45:50 +11:00
parent f8922627d3
commit 93d5c9e1c4
1 changed files with 16 additions and 15 deletions

View File

@ -50,7 +50,7 @@
#endif #endif
// these need to be set to valid values before anything in this file will work // these need to be set to valid values before anything in this file will work
STATIC SPI_HandleTypeDef *SPI_HANDLE = NULL; STATIC const spi_t *SPI_HANDLE = NULL;
STATIC const pin_obj_t *PIN_CS = NULL; STATIC const pin_obj_t *PIN_CS = NULL;
STATIC const pin_obj_t *PIN_EN = NULL; STATIC const pin_obj_t *PIN_EN = NULL;
STATIC const pin_obj_t *PIN_IRQ = NULL; STATIC const pin_obj_t *PIN_IRQ = NULL;
@ -134,17 +134,18 @@ void SpiOpen(gcSpiHandleRx pfRxHandler)
wlan_tx_buffer[CC3000_TX_BUFFER_SIZE - 1] = CC3000_BUFFER_MAGIC_NUMBER; wlan_tx_buffer[CC3000_TX_BUFFER_SIZE - 1] = CC3000_BUFFER_MAGIC_NUMBER;
/* SPI configuration */ /* SPI configuration */
SPI_HANDLE->Init.Mode = SPI_MODE_MASTER; SPI_InitTypeDef *init = &SPI_HANDLE->spi->Init;
SPI_HANDLE->Init.Direction = SPI_DIRECTION_2LINES; init->Mode = SPI_MODE_MASTER;
SPI_HANDLE->Init.DataSize = SPI_DATASIZE_8BIT; init->Direction = SPI_DIRECTION_2LINES;
SPI_HANDLE->Init.CLKPolarity = SPI_POLARITY_LOW; init->DataSize = SPI_DATASIZE_8BIT;
SPI_HANDLE->Init.CLKPhase = SPI_PHASE_2EDGE; init->CLKPolarity = SPI_POLARITY_LOW;
SPI_HANDLE->Init.NSS = SPI_NSS_SOFT; init->CLKPhase = SPI_PHASE_2EDGE;
SPI_HANDLE->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; init->NSS = SPI_NSS_SOFT;
SPI_HANDLE->Init.FirstBit = SPI_FIRSTBIT_MSB; init->BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
SPI_HANDLE->Init.TIMode = SPI_TIMODE_DISABLED; init->FirstBit = SPI_FIRSTBIT_MSB;
SPI_HANDLE->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; init->TIMode = SPI_TIMODE_DISABLED;
SPI_HANDLE->Init.CRCPolynomial = 7; init->CRCCalculation = SPI_CRCCALCULATION_DISABLED;
init->CRCPolynomial = 7;
spi_init(SPI_HANDLE, false); spi_init(SPI_HANDLE, false);
// configure wlan CS and EN pins // configure wlan CS and EN pins
@ -167,7 +168,7 @@ void SpiOpen(gcSpiHandleRx pfRxHandler)
actual communications start, it might be required */ actual communications start, it might be required */
CS_LOW(); CS_LOW();
uint8_t buf[1]; uint8_t buf[1];
HAL_SPI_Receive(SPI_HANDLE, buf, sizeof(buf), SPI_TIMEOUT); HAL_SPI_Receive(SPI_HANDLE->spi, buf, sizeof(buf), SPI_TIMEOUT);
CS_HIGH(); CS_HIGH();
// register EXTI // register EXTI
@ -192,7 +193,7 @@ STATIC void SpiWriteDataSynchronous(unsigned char *data, unsigned short size)
{ {
DEBUG_printf("SpiWriteDataSynchronous(data=%p [%x %x %x %x], size=%u)\n", data, data[0], data[1], data[2], data[3], size); DEBUG_printf("SpiWriteDataSynchronous(data=%p [%x %x %x %x], size=%u)\n", data, data[0], data[1], data[2], data[3], size);
__disable_irq(); __disable_irq();
if (HAL_SPI_TransmitReceive(SPI_HANDLE, data, data, size, SPI_TIMEOUT) != HAL_OK) { if (HAL_SPI_TransmitReceive(SPI_HANDLE->spi, data, data, size, SPI_TIMEOUT) != HAL_OK) {
//BREAK(); //BREAK();
} }
__enable_irq(); __enable_irq();
@ -203,7 +204,7 @@ STATIC void SpiReadDataSynchronous(unsigned char *data, unsigned short size)
{ {
memset(data, READ, size); memset(data, READ, size);
__disable_irq(); __disable_irq();
if (HAL_SPI_TransmitReceive(SPI_HANDLE, data, data, size, SPI_TIMEOUT) != HAL_OK) { if (HAL_SPI_TransmitReceive(SPI_HANDLE->spi, data, data, size, SPI_TIMEOUT) != HAL_OK) {
//BREAK(); //BREAK();
} }
__enable_irq(); __enable_irq();