From 36667ff9eed83df5f6460d596220908afc9b9a11 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期二, 07 五月 2024 19:31:50 +0800
Subject: [PATCH] 改成中断触发模式,但是还是有BUG,会死机,还会有临近基站不测距的问题。

---
 Src/radio/sx126x-board.c |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/Src/radio/sx126x-board.c b/Src/radio/sx126x-board.c
index fcdd3b3..71c10db 100644
--- a/Src/radio/sx126x-board.c
+++ b/Src/radio/sx126x-board.c
@@ -76,7 +76,9 @@
 
 void SX126xWakeup( void )
 {
-    SX126x_CS_Di( );
+    //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);
@@ -91,7 +93,9 @@
 {
 
     SX126xCheckDeviceReady( );
-    SX126x_CS_Di( );
+    //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 );
@@ -112,7 +116,9 @@
 void SX126xReadCommand( RadioCommands_t command, uint8_t *buffer, uint16_t size )
 {
     SX126xCheckDeviceReady( );
-    SX126x_CS_Di( );
+   //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 );
@@ -130,7 +136,9 @@
 void SX126xWriteRegisters( uint16_t address, uint8_t *buffer, uint16_t size )
 {
     SX126xCheckDeviceReady( );
-    SX126x_CS_Di( );
+  //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 );
@@ -156,7 +164,9 @@
 void SX126xReadRegisters( uint16_t address, uint8_t *buffer, uint16_t size )
 {
     SX126xCheckDeviceReady( );
-    SX126x_CS_Di( );
+   //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 );
@@ -183,7 +193,9 @@
 void SX126xWriteBuffer( uint8_t offset, uint8_t *buffer, uint8_t size )
 {
     SX126xCheckDeviceReady( );
-    SX126x_CS_Di( );
+    //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 );
@@ -201,7 +213,9 @@
 void SX126xReadBuffer( uint8_t offset, uint8_t *buffer, uint8_t size )
 {
     SX126xCheckDeviceReady( );
-    SX126x_CS_Di( );
+    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