| | |
| | | /* Write to SPIx CR1 */ |
| | | SPIx->CR1 = tmpreg; |
| | | } |
| | | |
| | | void Uwb_CS_di() |
| | | { |
| | | if(!HAL_GPIO_ReadPin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin)) |
| | | { |
| | | HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_SET); |
| | | printf("LORA_cs_error\r\n"); |
| | | } |
| | | } |
| | | /*! ------------------------------------------------------------------------------------------------------------------ |
| | | * Function: writetospi() |
| | | * |
| | |
| | | int writetospi |
| | | ( |
| | | uint16_t headerLength, |
| | | uint8_t *headerBuffer, |
| | | uint8_t *headerBuffer, |
| | | uint32_t bodylength, |
| | | uint8_t *bodyBuffer |
| | | uint8_t *bodyBuffer |
| | | ) |
| | | { |
| | | |
| | |
| | | decaIrqStatus_t stat ; |
| | | |
| | | // stat = decamutexon() ; |
| | | |
| | | Uwb_CS_di(); |
| | | SPIx_CS_GPIO->BRR = SPIx_CS; |
| | | // delay_ms(1); |
| | | // tt=HAL_SPI_Transmit(&hspi1,headerBuffer,headerLength,10); |
| | |
| | | // delay_ms(1); |
| | | for(i = 0; i < headerLength; i++) |
| | | { |
| | | SPIx->DR= headerBuffer[i]; |
| | | while ((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET); |
| | | SPIx->DR= headerBuffer[i]; |
| | | while ((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET); |
| | | SPIx->DR; |
| | | |
| | | } |
| | |
| | | for(i = 0; i < bodylength; i++) |
| | | { |
| | | SPIx->DR = bodyBuffer[i]; |
| | | while ((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET); |
| | | while ((SPIx->SR & SPI_FLAG_RXNE) == (uint16_t)RESET); |
| | | SPIx->DR ; |
| | | } |
| | | |
| | | SPIx_CS_GPIO->BSRR = SPIx_CS; |
| | | |
| | | // decamutexoff(stat) ; |
| | | // decamutexoff(stat) ; |
| | | |
| | | return 0; |
| | | } // end writetospi() |
| | |
| | | int readfromspi |
| | | ( |
| | | uint16_t headerLength, |
| | | uint8_t *headerBuffer, |
| | | uint8_t *headerBuffer, |
| | | uint32_t readlength, |
| | | uint8_t *readBuffer |
| | | ) |
| | |
| | | |
| | | decaIrqStatus_t stat ; |
| | | |
| | | // stat = decamutexon() ; |
| | | // stat = decamutexon() ; |
| | | |
| | | /* Wait for SPIx Tx buffer empty */ |
| | | //while (port_SPIx_busy_sending()); |
| | | |
| | | Uwb_CS_di(); |
| | | SPIx_CS_GPIO->BRR = SPIx_CS; |
| | | // HAL_SPI_Transmit(&hspi1,headerBuffer,headerLength,10); |
| | | // HAL_SPI_Receive(&hspi1,readBuffer,readlength,10); |
| | |
| | | |
| | | SPIx_CS_GPIO->BSRR = SPIx_CS; |
| | | |
| | | // decamutexoff(stat) ; |
| | | // decamutexoff(stat) ; |
| | | |
| | | return 0; |
| | | } // end readfromspi() |