This commit is contained in:
parent
a54ae53b95
commit
9c24285100
|
@ -225,7 +225,6 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
||||||
memcpy(hart1_uart5.rx_data, hart1_uart5.rx_data_temp, Size);
|
memcpy(hart1_uart5.rx_data, hart1_uart5.rx_data_temp, Size);
|
||||||
if (tcp_echo_flags_hart1 == 1)
|
if (tcp_echo_flags_hart1 == 1)
|
||||||
{
|
{
|
||||||
// tcp_send_flags_hart1 = 1;
|
|
||||||
user_send_data_hart1(hart1_uart5.rx_data, Size);
|
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));
|
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
|
||||||
|
@ -238,7 +237,6 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
||||||
memcpy(hart2_uart2.rx_data, hart2_uart2.rx_data_temp, Size);
|
memcpy(hart2_uart2.rx_data, hart2_uart2.rx_data_temp, Size);
|
||||||
if (tcp_echo_flags_hart2 == 1)
|
if (tcp_echo_flags_hart2 == 1)
|
||||||
{
|
{
|
||||||
// tcp_send_flags_hart2 = 1;
|
|
||||||
user_send_data_hart2(hart2_uart2.rx_data, Size);
|
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));
|
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));
|
||||||
|
@ -287,10 +285,10 @@ void Error_Handler(void)
|
||||||
{
|
{
|
||||||
/* USER CODE BEGIN Error_Handler_Debug */
|
/* USER CODE BEGIN Error_Handler_Debug */
|
||||||
/* User can add his own implementation to report the HAL error return state */
|
/* User can add his own implementation to report the HAL error return state */
|
||||||
// __disable_irq();
|
__disable_irq();
|
||||||
// while (1)
|
while (1)
|
||||||
// {
|
{
|
||||||
// }
|
}
|
||||||
/* USER CODE END Error_Handler_Debug */
|
/* USER CODE END Error_Handler_Debug */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -501,7 +501,7 @@
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
|
<GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>1</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
|
|
|
@ -28,20 +28,13 @@ static err_t tcpecho_recv_hart1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
|
||||||
/* 更新窗口*/
|
/* 更新窗口*/
|
||||||
tcp_echo_flags_hart1 = 1;
|
tcp_echo_flags_hart1 = 1;
|
||||||
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
||||||
memcpy(&server_pcb_hart1, &tpcb, sizeof(struct tcp_pcb *));
|
server_pcb_hart1 = tpcb; // 直接赋值
|
||||||
#if 0
|
|
||||||
memcpy(hart2_uart2.tx_data, (int *)p->payload, p->tot_len);
|
|
||||||
HART2_RTS_SEND;
|
|
||||||
HAL_UART_Transmit(&huart2, hart2_uart2.tx_data, p->tot_len, 1000);
|
|
||||||
HART2_RTS_RECEIVE;
|
|
||||||
#endif
|
|
||||||
#if 1
|
|
||||||
memcpy(hart1_uart5.tx_data, (int *)p->payload, p->tot_len);
|
memcpy(hart1_uart5.tx_data, (int *)p->payload, p->tot_len);
|
||||||
HART1_RTS_SEND;
|
if (huart5.gState == HAL_UART_STATE_READY)
|
||||||
dma_usart_send(&huart5, hart1_uart5.tx_data, p->tot_len);
|
{
|
||||||
// HART1_RTS_RECEIVE;
|
HART1_RTS_SEND;
|
||||||
#endif
|
dma_usart_send(&huart5, hart1_uart5.tx_data, p->tot_len);
|
||||||
memset(p->payload, 0, p->tot_len);
|
}
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
}
|
}
|
||||||
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
||||||
|
@ -58,20 +51,14 @@ static err_t tcpecho_recv_hart2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
|
||||||
/* 更新窗口*/
|
/* 更新窗口*/
|
||||||
tcp_echo_flags_hart2 = 1;
|
tcp_echo_flags_hart2 = 1;
|
||||||
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
||||||
memcpy(&server_pcb_hart2, &tpcb, sizeof(struct tcp_pcb *));
|
server_pcb_hart2 = tpcb; // 直接赋值
|
||||||
#if 1
|
|
||||||
memcpy(hart2_uart2.tx_data, (int *)p->payload, p->tot_len);
|
memcpy(hart2_uart2.tx_data, (int *)p->payload, p->tot_len);
|
||||||
HART2_RTS_SEND;
|
if (huart2.gState == HAL_UART_STATE_READY)
|
||||||
dma_usart_send(&huart2, hart2_uart2.tx_data, p->tot_len);
|
{
|
||||||
#endif
|
HART2_RTS_SEND;
|
||||||
#if 0
|
dma_usart_send(&huart2, hart2_uart2.tx_data, p->tot_len);
|
||||||
memcpy(hart1_uart5.tx_data, (int *)p->payload, p->tot_len);
|
}
|
||||||
HART1_RTS_SEND;
|
|
||||||
HAL_UART_Transmit(&huart5, hart1_uart5.tx_data, p->tot_len, 100);
|
|
||||||
HART1_RTS_RECEIVE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
memset(p->payload, 0, p->tot_len);
|
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
}
|
}
|
||||||
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
||||||
|
@ -88,12 +75,14 @@ static err_t tcpecho_recv_ble1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
|
||||||
/* 更新窗口*/
|
/* 更新窗口*/
|
||||||
tcp_echo_flags_ble1 = 1;
|
tcp_echo_flags_ble1 = 1;
|
||||||
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
||||||
memcpy(&server_pcb_ble1, &tpcb, sizeof(struct tcp_pcb *));
|
server_pcb_ble1 = tpcb; // 直接赋值
|
||||||
|
|
||||||
memcpy(ble1_uart6.tx_data, (int *)p->payload, p->tot_len);
|
memcpy(ble1_uart6.tx_data, (int *)p->payload, p->tot_len);
|
||||||
dma_usart_send(&huart6, ble1_uart6.tx_data, p->tot_len);
|
if (huart6.gState == HAL_UART_STATE_READY)
|
||||||
|
{
|
||||||
|
dma_usart_send(&huart6, ble1_uart6.tx_data, p->tot_len);
|
||||||
|
}
|
||||||
|
|
||||||
memset(p->payload, 0, p->tot_len);
|
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
}
|
}
|
||||||
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
||||||
|
@ -110,12 +99,12 @@ static err_t tcpecho_recv_ble2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
|
||||||
/* 更新窗口*/
|
/* 更新窗口*/
|
||||||
tcp_echo_flags_ble2 = 1;
|
tcp_echo_flags_ble2 = 1;
|
||||||
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
|
||||||
memcpy(&server_pcb_ble2, &tpcb, sizeof(struct tcp_pcb *));
|
server_pcb_ble2 = tpcb; // 直接赋值
|
||||||
|
|
||||||
memcpy(ble2_uart3.tx_data, (int *)p->payload, p->tot_len);
|
memcpy(ble2_uart3.tx_data, (int *)p->payload, p->tot_len);
|
||||||
dma_usart_send(&huart3, ble2_uart3.tx_data, p->tot_len);
|
if (huart3.gState == HAL_UART_STATE_READY)
|
||||||
|
{
|
||||||
memset(p->payload, 0, p->tot_len);
|
dma_usart_send(&huart3, ble2_uart3.tx_data, p->tot_len);
|
||||||
|
}
|
||||||
pbuf_free(p);
|
pbuf_free(p);
|
||||||
}
|
}
|
||||||
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
else if (err == ERR_OK) // 检测到对方主动关闭连接时,也会调用recv函数,此时p为空
|
||||||
|
@ -209,30 +198,22 @@ void tcp_echo_init(void)
|
||||||
|
|
||||||
void user_send_data_hart1(uint8_t *data, uint16_t len)
|
void user_send_data_hart1(uint8_t *data, uint16_t len)
|
||||||
{
|
{
|
||||||
if (tcp_echo_flags_hart1 == 1)
|
|
||||||
{
|
tcp_write(server_pcb_hart1, data, len, 1);
|
||||||
tcp_write(server_pcb_hart1, data, len, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
void user_send_data_hart2(uint8_t *data, uint16_t len)
|
void user_send_data_hart2(uint8_t *data, uint16_t len)
|
||||||
{
|
{
|
||||||
if (tcp_echo_flags_hart2 == 1)
|
|
||||||
{
|
tcp_write(server_pcb_hart2, data, len, 1);
|
||||||
tcp_write(server_pcb_hart2, data, len, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void user_send_data_ble1(uint8_t *data, uint16_t len)
|
void user_send_data_ble1(uint8_t *data, uint16_t len)
|
||||||
{
|
{
|
||||||
if (tcp_echo_flags_ble1 == 1)
|
|
||||||
{
|
tcp_write(server_pcb_ble1, data, len, 1);
|
||||||
tcp_write(server_pcb_ble1, data, len, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
void user_send_data_ble2(uint8_t *data, uint16_t len)
|
void user_send_data_ble2(uint8_t *data, uint16_t len)
|
||||||
{
|
{
|
||||||
if (tcp_echo_flags_ble2 == 1)
|
|
||||||
{
|
tcp_write(server_pcb_ble2, data, len, 1);
|
||||||
tcp_write(server_pcb_ble2, data, len, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue