Compare commits

..

3 Commits

Author SHA1 Message Date
王绪洁 4d09e4ab4f 111 2025-06-25 18:03:02 +08:00
王绪洁 7e0b0a63a6 合并分支 2025-06-25 18:02:03 +08:00
wangxujie 2dc7c95b7a 解决通讯卡死问题 2025-04-21 08:24:18 +08:00
6 changed files with 5115 additions and 5183 deletions

View File

@ -23,7 +23,8 @@
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
extern "C"
{
#endif
/* Includes ------------------------------------------------------------------*/
@ -47,10 +48,10 @@ extern "C" {
extern uint8_t tcp_echo_flags_control;
extern uint8_t send_data_flag_cmd;
extern uint8_t uart_forwarding_flags_hart1;
extern uint8_t uart_forwarding_flags_hart2;
extern uint8_t uart_forwarding_flags_ble1;
extern uint8_t uart_forwarding_flags_ble2;
extern uint8_t uart_echo_flags_hart1;
extern uint8_t uart_echo_flags_hart2;
extern uint8_t uart_echo_flags_ble1;
extern uint8_t uart_echo_flags_ble2;
#define ARRAY_LEN(arr) (sizeof(arr)) / (sizeof(arr[0]))
typedef struct
{

View File

@ -87,7 +87,6 @@ void start_dac_task(void const *argument);
void start_adc_task(void const *argument);
void start_gpio_di_do_task(void const *argument);
void start_ec11_task(void const *argument);
void start_uart_forwarding(void const *argument);
extern void MX_LWIP_Init(void);
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
@ -222,7 +221,6 @@ void start_tcp_task(void const *argument)
tcp_abort(server_pcb_control); // 热插拔下线时调用
tcp_echo_flags_control = 0;
}
tcp_echo_flags_ble1 = 2;
}
else
{
@ -348,28 +346,10 @@ void start_ec11_task(void const *argument)
{
linear_encoder_get_data();
uart_lcd_ec11_control_current();
vTaskDelay(100);
}
/* USER CODE END start_ec11_task */
}
/* USER CODE BEGIN Header_start_uart_forwarding */
/**
* @brief Function implementing the uart_forwarding thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_start_uart_forwarding */
void start_uart_forwarding(void const *argument)
{
/* USER CODE BEGIN start_uart_forwarding */
/* Infinite loop */
for (;;)
{
uart_forwarding_tcp();
vTaskDelay(10);
}
/* USER CODE END start_uart_forwarding */
/* USER CODE END start_ec11_task */
}
/* Private application code --------------------------------------------------*/

View File

@ -82,10 +82,15 @@ uint8_t tcp_echo_flags_ble2 = 0;
uint8_t tcp_echo_flags_control = 0;
uint8_t send_data_flag_cmd = 0;
uint8_t uart_forwarding_flags_hart1 = 0;
uint8_t uart_forwarding_flags_hart2 = 0;
uint8_t uart_forwarding_flags_ble1 = 0;
uint8_t uart_forwarding_flags_ble2 = 0;
uint8_t uart_echo_flags_hart1 = 0;
uint8_t uart_echo_flags_hart2 = 0;
uint8_t uart_echo_flags_ble1 = 0;
uint8_t uart_echo_flags_ble2 = 0;
// TEST
// uint8_t data_flag = 0;
// uint32_t receive_times1 = 0;
// uint32_t receive_times2 = 0;
// ENDTEST
extern struct netif gnetif;
extern ip4_addr_t ipaddr;
@ -270,7 +275,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
memcpy(ble1_uart6.rx_data, ble1_uart6.rx_data_temp, Size);
if (tcp_echo_flags_ble1 == 1)
{
uart_forwarding_flags_ble1 = 1;
uart_echo_flags_ble1 = 1;
// user_send_data_ble1(ble1_uart6.rx_data, Size);
}
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp));
@ -284,7 +289,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
memcpy(ble2_uart3.rx_data, ble2_uart3.rx_data_temp, Size);
if (tcp_echo_flags_ble2 == 1)
{
uart_forwarding_flags_ble2 = 1;
uart_echo_flags_ble2 = 1;
// user_send_data_ble2(ble2_uart3.rx_data, Size);
}
HAL_UARTEx_ReceiveToIdle_DMA(&huart3, ble2_uart3.rx_data_temp, ARRAY_LEN(ble2_uart3.rx_data_temp));
@ -297,7 +302,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
memcpy(hart1_uart5.rx_data, hart1_uart5.rx_data_temp, Size);
if (tcp_echo_flags_hart1 == 1)
{
uart_forwarding_flags_hart1 = 1;
uart_echo_flags_hart1 = 1;
// user_send_data_hart1(hart1_uart5.rx_data, Size);
}
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
@ -311,7 +316,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
memcpy(hart2_uart2.rx_data, hart2_uart2.rx_data_temp, Size);
if (tcp_echo_flags_hart2 == 1)
{
uart_forwarding_flags_hart2 = 1;
uart_echo_flags_hart2 = 1;
// user_send_data_hart2(hart2_uart2.rx_data, Size);
}
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));

View File

@ -145,7 +145,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U090F00028316303030303032 -O2254 -SF500 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
<Name>-U420014000D0000504A51544E -O2254 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint>
@ -154,7 +154,7 @@
<Type>0</Type>
<LineNumber>2413</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134234476</Address>
<Address>134234468</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@ -165,54 +165,6 @@
<ExecCommand></ExecCommand>
<Expression>\\semi_finished_product_testing\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c\2413</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>77</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134238496</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>../LWIP/App/lwip.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\semi_finished_product_testing\../LWIP/App/lwip.c\77</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>224</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>startup_stm32f407xx.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>3</Number>
<Type>0</Type>
<LineNumber>226</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>startup_stm32f407xx.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
@ -285,6 +237,11 @@
<WinNumber>1</WinNumber>
<ItemText>ip_address_flash,0x0A</ItemText>
</Ww>
<Ww>
<count>14</count>
<WinNumber>1</WinNumber>
<ItemText>uart_echo_flags_hart1</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>

View File

@ -34,10 +34,11 @@ extern uint8_t tcp_echo_flags_ble2;
extern uint8_t tcp_echo_flags_control;
extern uint8_t send_data_flag_cmd;
extern uint8_t uart_forwarding_flags_hart1;
extern uint8_t uart_forwarding_flags_hart2;
extern uint8_t uart_forwarding_flags_ble1;
extern uint8_t uart_forwarding_flags_ble2;
extern uint8_t uart_echo_flags_hart1;
extern uint8_t uart_echo_flags_hart2;
extern uint8_t uart_echo_flags_ble1;
extern uint8_t uart_echo_flags_ble2;
/*接收回调函数*/
static err_t tcpecho_recv_hart1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
{ // 对应接收数据连接的控制块 接收到的数据
@ -374,27 +375,26 @@ void user_send_data_control(uint8_t *data, uint16_t len)
void uart_forwarding_tcp(void)
{
if (uart_forwarding_flags_hart1 == 1)
if (uart_echo_flags_hart1 == 1)
{
uart_echo_flags_hart1 = 0;
user_send_data_hart1(hart1_uart5.rx_data, hart1_uart5.rx_num);
uart_forwarding_flags_hart1 = 0;
}
if (uart_forwarding_flags_hart2 == 1)
if (uart_echo_flags_hart2 == 1)
{
uart_echo_flags_hart2 = 0;
user_send_data_hart2(hart2_uart2.rx_data, hart2_uart2.rx_num);
uart_forwarding_flags_hart2 = 0;
}
#if (BLE2_USART6 == 1)
if (uart_forwarding_flags_ble1 == 1)
if (uart_echo_flags_ble1 == 1)
{
uart_echo_flags_ble1 = 0;
user_send_data_ble1(ble1_uart6.rx_data, ble1_uart6.rx_num);
uart_forwarding_flags_ble1 = 0;
}
#endif
if (uart_forwarding_flags_ble2 == 1)
if (uart_echo_flags_ble2 == 1)
{
uart_echo_flags_ble2 = 0;
user_send_data_ble2(ble2_uart3.rx_data, ble2_uart3.rx_num);
uart_forwarding_flags_ble2 = 0;
}
}