Quellcode durchsuchen

修复spi的myRadioSpi_rwByte超时操作i

dropLin vor 4 Wochen
Ursprung
Commit
cda7d59eb6
6 geänderte Dateien mit 60 neuen und 54 gelöschten Zeilen
  1. 7 0
      gitFocePushRemote.bat
  2. 2 2
      keil_v5/project.uvoptx
  3. 1 1
      peripheral/myUart3.c
  4. 36 37
      project/main.c
  5. 10 10
      project/stm32f10x_it.c
  6. 4 4
      radio/myRadio_gpio.c

+ 7 - 0
gitFocePushRemote.bat

@@ -0,0 +1,7 @@
+@echo off  
+setlocal  
+  
+:: 假设你已经处于正确的Git仓库目录中  
+  
+:: 添加所有更改到暂存区  
+git push -f --set-upstream origin master:master

+ 2 - 2
keil_v5/project.uvoptx

@@ -388,7 +388,7 @@
       <OPTFL>
         <tvExp>1</tvExp>
         <tvExpOptDlg>0</tvExpOptDlg>
-        <IsCurrentTarget>0</IsCurrentTarget>
+        <IsCurrentTarget>1</IsCurrentTarget>
       </OPTFL>
       <CpuCode>18</CpuCode>
       <DebugOpt>
@@ -573,7 +573,7 @@
       <OPTFL>
         <tvExp>1</tvExp>
         <tvExpOptDlg>0</tvExpOptDlg>
-        <IsCurrentTarget>1</IsCurrentTarget>
+        <IsCurrentTarget>0</IsCurrentTarget>
       </OPTFL>
       <CpuCode>255</CpuCode>
       <DebugOpt>

+ 1 - 1
peripheral/myUart3.c

@@ -59,7 +59,7 @@ void myUart3_init(uint32_t baudrate, UART_CALLBACK cb)
     NVIC_InitTypeDef NVIC_InitStructure;
 
     myIrqCallback_uart3.thisCb = uart3_callback;
-    USART1_callbackRegiste(&myIrqCallback_uart3);  
+    USART3_callbackRegiste(&myIrqCallback_uart3);  
 
     RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);  
     //USART3_TX

+ 36 - 37
project/main.c

@@ -339,31 +339,31 @@ static void rcc_init(void)
  */
 void UART1_CALLBACK(uint8_t *buf, uint16_t len)
 {
- if(uartPacket.isValid == 0)
- {
-    memcpy(uartPacket.packet, buf, len);
-    uartPacket.len = len;
-    uartPacket.isValid = 1;
-    
-    baseCmdFram_ts *baseCmd = (baseCmdFram_ts *)uartPacket.packet;
-    if (checkFramLegal(uartPacket.packet, uartPacket.len))
+    if(uartPacket.isValid == 0)
     {
-        switch (baseCmd->cmd)
-        {
-        case CMD_TO_BOOTLOADER:
+        memcpy(uartPacket.packet, buf, len);
+        uartPacket.len = len;
+        uartPacket.isValid = 1;
+        
+        baseCmdFram_ts *baseCmd = (baseCmdFram_ts *)uartPacket.packet;
+        if (checkFramLegal(uartPacket.packet, uartPacket.len))
         {
-            #ifdef BOOTLOADER_APP
-            myFlash_setBootloadFlag();
-            
-            #endif
-            NVIC_SystemReset();
-        }break;
-        default:
-            break;
+            switch (baseCmd->cmd)
+            {
+            case CMD_TO_BOOTLOADER:
+            {
+                #ifdef BOOTLOADER_APP
+                myFlash_setBootloadFlag();
+                
+                #endif
+                NVIC_SystemReset();
+            }break;
+            default:
+                break;
+            }
         }
-    }
-     event_post(EVENT_UART_RECV);
- }
+        event_post(EVENT_UART_RECV);
+}
 }
 void UART3_CALLBACK(uint8_t *buf, uint16_t len)
 {
@@ -597,19 +597,19 @@ void rfRx_callback(uint8_t status, rfRxPacket_ts packet)
         {
             rfRecvPacket = packet;
             myRadio_receiver();
-                switch (packetRxMode)
-                {
-                case 0://signle pcaket rx
-                {
-                    event_post(EVENT_RF_GET_RX_PACKET);
-                }break;
-                case 1:// pcaket rx and wait ack
-                {
-                    setEvent( EVENT_RF_GET_RX_PACKET, false, 50);
-                }break;
-                default:
-                    break;
-                }
+            switch (packetRxMode)
+            {
+            case 0://signle pcaket rx
+            {
+                event_post(EVENT_RF_GET_RX_PACKET);
+            }break;
+            case 1:// pcaket rx and wait ack
+            {
+                setEvent( EVENT_RF_GET_RX_PACKET, false, 50);
+            }break;
+            default:
+                break;
+            }
         }
         break;
         case RX_STA_TIMEOUT:
@@ -648,7 +648,6 @@ void rfRx_callback(uint8_t status, rfRxPacket_ts packet)
                     {
                         event_clear(EVENT_RF_PACKET_TX);
                     }
-                    
                 }
                     break;
                 default:
@@ -816,7 +815,7 @@ int main(void)
                 }break;
                 case 1:// pcaket tx and wait ack
                 {
-                        setEvent(EVENT_RF_PACKET_TX, false, (rfTxPacket.absTime + 1000));
+                    setEvent(EVENT_RF_PACKET_TX, false, (rfTxPacket.absTime + 1000));
                     if (rfTxCount > deviceInfor.sendPacketCounts)
                     {
                         myDisplay_ui_rf_tx_packet_rate((float)rfRxCount/rfTxCount * 100);

+ 10 - 10
project/stm32f10x_it.c

@@ -63,7 +63,7 @@ void HardFault_Handler(void)
 // {
 
 // 	//rfIntRequest=1;
-// 	EXTI_ClearITPendingBit(EXTI_Line3);  //清除EXTI0线路挂起位
+// 	EXTI_ClearITPendingBit(EXTI_Line3);  //娓呴櫎EXTI0绾胯矾鎸傝捣浣�
 // }
 void MemManage_Handler(void)
 {
@@ -216,7 +216,7 @@ void USART1_callbackRegiste(irqCallback_ts *cbStruct)
         
     }
 }
-void USART1_IRQHandler(void)                    //串口1中断服务程序
+void USART1_IRQHandler(void)                    //涓插彛1涓�柇鏈嶅姟绋嬪簭
 {
     uint16_t recvData;
     irqCallback_ts *irqCallbackTemp;
@@ -257,7 +257,7 @@ void USART3_callbackRegiste(irqCallback_ts *cbStruct)
         
     }
 }
-void USART3_IRQHandler(void)                    //串口1中断服务程序
+void USART3_IRQHandler(void)                    //涓插彛1涓�柇鏈嶅姟绋嬪簭
 {
     uint16_t recvData;
     irqCallback_ts *irqCallbackTemp;
@@ -271,7 +271,7 @@ void USART3_IRQHandler(void)                    //
             irqCallbackTemp = irqCallbackTemp->nextStruct;
         }
     }
-    if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)  //接收中断(接收到的数据必须是0x0d 0x0a结尾)
+    if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)  //鎺ユ敹涓�柇(鎺ユ敹鍒扮殑鏁版嵁蹇呴』鏄�0x0d 0x0a缁撳熬)
     {
         recvData = USART_ReceiveData(USART3);
         while (irqCallbackTemp)
@@ -298,11 +298,11 @@ void TIM1_callbackRegiste(irqCallback_ts *cbStruct)
         
     }
 }
-void TIM1_UP_IRQHandler(void)   //TIM1中断
+void TIM1_UP_IRQHandler(void)   //TIM1涓�柇
 {
-    if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
+    if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET)  //妫€鏌�IM3鏇存柊涓�柇鍙戠敓涓庡惁
     {   
-        TIM_ClearITPendingBit(TIM1, TIM_IT_Update  );  //清除TIMx更新中断标志 
+        TIM_ClearITPendingBit(TIM1, TIM_IT_Update  );  //娓呴櫎TIMx鏇存柊涓�柇鏍囧織 
         irqCallback_ts *irqCallbackTemp;
         irqCallbackTemp = firstIrqCallback_tim1;
         while (irqCallbackTemp)
@@ -407,7 +407,7 @@ void TIM3CC4_callbackRegiste(irqCallback_ts *cbStruct)
         
     }
 }
-void TIM3_IRQHandler(void)   //TIM3中断
+void TIM3_IRQHandler(void)   //TIM3涓�柇
 {
     if(TIM_GetITStatus(TIM3, TIM_IT_CC4) == SET) 
     {
@@ -421,9 +421,9 @@ void TIM3_IRQHandler(void)   //TIM3
             irqCallbackTemp = irqCallbackTemp->nextStruct;
         }
     }
-    if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
+    if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //妫€鏌�IM3鏇存柊涓�柇鍙戠敓涓庡惁
     {    
-        TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中断标志 
+        TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //娓呴櫎TIMx鏇存柊涓�柇鏍囧織 
         irqCallback_ts *irqCallbackTemp;
         irqCallbackTemp = firstIrqCallback_tim3;
         while (irqCallbackTemp)

+ 4 - 4
radio/myRadio_gpio.c

@@ -217,13 +217,13 @@ void myRadio_gpio_init(RADIO_GPIO_CALLBACK cb)
 }
 uint8_t myRadioSpi_rwByte(uint8_t byteToWrite)
 {
-    uint8_t i, temp;
-    temp = 0;   
+    uint16_t i = 0;
+    uint8_t temp = 0;   
 #if defined(SPI_HARD)
 	while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) //检查指定的SPI标志位设置与否:发送缓存空标志位
     {
         i++;
-        if(i > 200)return 0;
+        if(i > 2000)return 0;
     }			  
 	SPI_I2S_SendData(SPI1, byteToWrite); //通过外设SPIx发送一个数据
 	i=0;
@@ -231,7 +231,7 @@ uint8_t myRadioSpi_rwByte(uint8_t byteToWrite)
 	while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)//检查指定的SPI标志位设置与否:接受缓存非空标志位
     {
         i++;
-        if(i > 200)return 0;
+        if(i > 2000)return 0;
     }
     /*!< Return the byte read from the SPI bus */
     temp = SPI_I2S_ReceiveData(SPI1);