From ba9bc95d95fbd04e34ca5d61677422d28c089bf8 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期五, 05 七月 2024 16:41:41 +0800 Subject: [PATCH] 1.25,修改后测试一天一夜已经 不死机。 --- Src/radio/sx126x-board.c | 47 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 34 insertions(+), 13 deletions(-) diff --git a/Src/radio/sx126x-board.c b/Src/radio/sx126x-board.c index e54e064..1245ef3 100644 --- a/Src/radio/sx126x-board.c +++ b/Src/radio/sx126x-board.c @@ -23,9 +23,9 @@ #include "sx126x-board.h" #include "main.h" #include "stm32l0xx_hal_spi.h" - +#include "Spi.h" extern SPI_HandleTypeDef hspi1; - +extern SPI_HandleTypeDef hspi2; //void HAL_Delay_nMS( uint32_t Delay ) //{ @@ -33,8 +33,15 @@ // tickstart = HAL_GetTick( ); // while( ( HAL_GetTick( ) - tickstart ) < Delay ); //} +void SX126x_CS_Di( ) +{ + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + { + HAL_GPIO_WritePin( SPIx_CS_GPIO, SPIx_CS,GPIO_PIN_SET); + printf("uwb_cs_error\r\n"); + } - +} /*! * @brief Sends txBuffer and receives rxBuffer @@ -46,7 +53,7 @@ uint8_t SpiInOut( uint8_t txBuffer) { uint8_t rxData = 0; - HAL_SPI_TransmitReceive(&hspi1,&txBuffer,&rxData,1, 1000); + HAL_SPI_TransmitReceive(&hspi2,&txBuffer,&rxData,1, 1000); return( rxData ); } @@ -55,8 +62,8 @@ void SX126xReset( void ) { HAL_Delay_nMS( 10 ); - HAL_GPIO_WritePin( RADIO_nRESET_GPIO_Port, RADIO_nRESET_Pin,GPIO_PIN_RESET); - HAL_Delay_nMS( 20 ); + HAL_GPIO_WritePin( RADIO_nRESET_GPIO_Port, RADIO_nRESET_Pin,GPIO_PIN_RESET); + delay_us( 2000 ); HAL_GPIO_WritePin( RADIO_nRESET_GPIO_Port, RADIO_nRESET_Pin,GPIO_PIN_SET); HAL_Delay_nMS( 10 ); } @@ -69,8 +76,10 @@ void SX126xWakeup( void ) { + //SX126x_CS_Di( ); + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + return; HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET); - SpiInOut(RADIO_GET_STATUS); SpiInOut(0); @@ -84,7 +93,9 @@ { SX126xCheckDeviceReady( ); - + //SX126x_CS_Di( ); + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + return; HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET); SpiInOut(( uint8_t )command ); @@ -105,7 +116,9 @@ void SX126xReadCommand( RadioCommands_t command, uint8_t *buffer, uint16_t size ) { SX126xCheckDeviceReady( ); - + //SX126x_CS_Di( ); + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + return; HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET); SpiInOut(( uint8_t )command ); @@ -123,7 +136,9 @@ void SX126xWriteRegisters( uint16_t address, uint8_t *buffer, uint16_t size ) { SX126xCheckDeviceReady( ); - + //SX126x_CS_Di( ); + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + return; HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET); SpiInOut(RADIO_WRITE_REGISTER ); @@ -149,7 +164,9 @@ void SX126xReadRegisters( uint16_t address, uint8_t *buffer, uint16_t size ) { SX126xCheckDeviceReady( ); - + //SX126x_CS_Di( ); + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + return; HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET); SpiInOut(RADIO_READ_REGISTER ); @@ -176,7 +193,9 @@ void SX126xWriteBuffer( uint8_t offset, uint8_t *buffer, uint8_t size ) { SX126xCheckDeviceReady( ); - + //SX126x_CS_Di( ); + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + return; HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET); SpiInOut( RADIO_WRITE_BUFFER ); @@ -194,7 +213,9 @@ void SX126xReadBuffer( uint8_t offset, uint8_t *buffer, uint8_t size ) { SX126xCheckDeviceReady( ); - + if(!HAL_GPIO_ReadPin( SPIx_CS_GPIO, SPIx_CS)) + return; + //SX126x_CS_Di( ); HAL_GPIO_WritePin( RADIO_NSS_GPIO_Port, RADIO_NSS_Pin,GPIO_PIN_RESET); SpiInOut( RADIO_READ_BUFFER ); -- Gitblit v1.9.3