فهرست منبع

解决串口问题

yidongFan 1 ماه پیش
والد
کامیت
d641934055

+ 1 - 1
DriverInterface/ESP32_WROOM_32D.h

@@ -61,7 +61,7 @@ typedef enum{
 #define User_ESP32_TCPServer_IP     "192.168.3.182"
 #define User_ESP32_TCPServer_PORT   "8002"
 #define User_ESP32_UDPServer_IP     "255.255.255.255"
-#define User_ESP32_UDPServer_PORT   "9091"
+#define User_ESP32_UDPServer_PORT   "9090"
 
 char* find_str(void *src, int size,char *str);
 void WIFI_set_ssid(void);

+ 1 - 1
Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h

@@ -755,7 +755,7 @@ HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData
 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart);
 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart);
 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart);
-
+HAL_StatusTypeDef HAL_UART_RX_DMAStop(UART_HandleTypeDef *huart);
 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen,
                                            uint32_t Timeout);
 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

+ 34 - 0
Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c

@@ -1573,6 +1573,40 @@ HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart)
   return HAL_OK;
 }
 
+
+/**
+  * @brief Stops the DMA Transfer.
+  * @param  huart  Pointer to a UART_HandleTypeDef structure that contains
+  *                the configuration information for the specified UART module.
+  * @retval HAL status
+  */
+HAL_StatusTypeDef HAL_UART_RX_DMAStop(UART_HandleTypeDef *huart)
+{
+  uint32_t dmarequest = 0x00U;
+  /* The Lock is not implemented on this API to allow the user application
+     to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback():
+     when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated
+     and the correspond call back is executed HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback()
+     */
+
+
+  /* Stop UART DMA Rx request if ongoing */
+  dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR);
+  if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest)
+  {
+    ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
+
+    /* Abort the UART DMA Rx channel */
+    if (huart->hdmarx != NULL)
+    {
+      HAL_DMA_Abort(huart->hdmarx);
+    }
+    UART_EndRxTransfer(huart);
+  }
+
+  return HAL_OK;
+}
+
 /**
   * @brief Receive an amount of data in blocking mode till either the expected number of data is received or an IDLE event occurs.
   * @note   HAL_OK is returned if reception is completed (expected number of data has been received)

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
MDK-ARM/mini7_V2.uvguix.Administrator


+ 34 - 1
MDK-ARM/mini7_V2.uvoptx

@@ -148,7 +148,40 @@
           <Name>-U-O142 -O2254 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RE$Flash\STM32F10x_512.FLM)</Name>
         </SetRegEntry>
       </TargetDriverDllRegistry>
-      <Breakpoint/>
+      <Breakpoint>
+        <Bp>
+          <Number>0</Number>
+          <Type>0</Type>
+          <LineNumber>41</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>134316420</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>1</BreakIfRCount>
+          <Filename>..\tshell\van_bsp_debug_uart.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression>\\mini7_V2\../tshell/van_bsp_debug_uart.c\41</Expression>
+        </Bp>
+        <Bp>
+          <Number>1</Number>
+          <Type>0</Type>
+          <LineNumber>113</LineNumber>
+          <EnabledFlag>1</EnabledFlag>
+          <Address>134315854</Address>
+          <ByteObject>0</ByteObject>
+          <HtxType>0</HtxType>
+          <ManyObjects>0</ManyObjects>
+          <SizeOfObject>0</SizeOfObject>
+          <BreakByAccess>0</BreakByAccess>
+          <BreakIfRCount>1</BreakIfRCount>
+          <Filename>..\tshell\van_bsp_debug_uart.c</Filename>
+          <ExecCommand></ExecCommand>
+          <Expression>\\mini7_V2\../tshell/van_bsp_debug_uart.c\113</Expression>
+        </Bp>
+      </Breakpoint>
       <WatchWindow1>
         <Ww>
           <count>0</count>

+ 1 - 1
tshell/van_bsp_debug_uart.c

@@ -96,7 +96,7 @@ void Van_Debug_UART_Rec_IDLE(UART_HandleTypeDef *huart)
 			g_cmd_rx_buf[cmd_rx_last] = debug_rec_type1.usartDMA_rxBuf[i];
 			cmd_rx_last++;
 		}		
-		HAL_UART_DMAStop(huart); 
+		HAL_UART_RX_DMAStop(huart); 
 		HAL_UART_Receive_DMA(huart, debug_rec_type1.usartDMA_rxBuf, RECEIVELEN);
 //		if (debug_rec_type1.dmaSend_flag == USART_DMA_SENDING)
 //		{

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است