备份,通讯卡死情况

This commit is contained in:
wangxujie 2025-04-16 15:59:28 +08:00
parent 6f397f6161
commit 38adf29ce9
19 changed files with 5053 additions and 5094 deletions

View File

@ -76,6 +76,8 @@ void Error_Handler(void);
#define HART_ALL_RST_GPIO_Port GPIOA
#define HART9_RTS_Pin GPIO_PIN_0
#define HART9_RTS_GPIO_Port GPIOB
#define CH438_2_INT_Pin GPIO_PIN_13
#define CH438_2_INT_GPIO_Port GPIOF
#define CH438_AMOD_Pin GPIO_PIN_14
#define CH438_AMOD_GPIO_Port GPIOF
#define HART8_RTS_Pin GPIO_PIN_0
@ -104,9 +106,9 @@ void Error_Handler(void);
#define HART12_RTS_GPIO_Port GPIOA
#define HART13_RTS_Pin GPIO_PIN_11
#define HART13_RTS_GPIO_Port GPIOC
#define CH438_INT_Pin GPIO_PIN_2
#define CH438_INT_GPIO_Port GPIOD
#define CH438_INT_EXTI_IRQn EXTI2_IRQn
#define CH438_1_INT_Pin GPIO_PIN_2
#define CH438_1_INT_GPIO_Port GPIOD
#define CH438_1_INT_EXTI_IRQn EXTI2_IRQn
#define CH438_RST_Pin GPIO_PIN_3
#define CH438_RST_GPIO_Port GPIOD
#define DAC10_CS_Pin GPIO_PIN_6

View File

@ -221,8 +221,8 @@
/* Section 2: PHY configuration section */
/* DP83848_PHY_ADDRESS Address*/
#define DP83848_PHY_ADDRESS 0x01U
/* LAN8742A PHY Address*/
#define LAN8742A_PHY_ADDRESS 0x00U
/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
#define PHY_RESET_DELAY 0x000000FFU
/* PHY Configuration delay */
@ -252,10 +252,13 @@
#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */
/* Section 4: Extended PHY Registers */
#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */
#define PHY_SR ((uint16_t)0x001FU) /*!< PHY status register Offset */
#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */
#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */
#define PHY_SPEED_STATUS ((uint16_t)0x0004U) /*!< PHY Speed mask */
#define PHY_DUPLEX_STATUS ((uint16_t)0x0010U) /*!< PHY Duplex mask */
#define PHY_ISFR ((uint16_t)0x1DU) /*!< PHY Interrupt Source Flag register Offset */
#define PHY_ISFR_INT4 ((uint16_t)0x0010U) /*!< PHY Link down inturrupt */
/* ################## SPI peripheral configuration ########################## */

View File

@ -137,7 +137,6 @@ static void HAL_FSMC_MspInit(void){
PF4 ------> FSMC_A4
PF5 ------> FSMC_A5
PF12 ------> FSMC_A6
PF13 ------> FSMC_A7
PE7 ------> FSMC_D4
PE8 ------> FSMC_D5
PE9 ------> FSMC_D6
@ -153,7 +152,7 @@ static void HAL_FSMC_MspInit(void){
*/
/* GPIO_InitStruct */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13;
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
@ -225,7 +224,6 @@ static void HAL_FSMC_MspDeInit(void){
PF4 ------> FSMC_A4
PF5 ------> FSMC_A5
PF12 ------> FSMC_A6
PF13 ------> FSMC_A7
PE7 ------> FSMC_D4
PE8 ------> FSMC_D5
PE9 ------> FSMC_D6
@ -241,7 +239,7 @@ static void HAL_FSMC_MspDeInit(void){
*/
HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12|GPIO_PIN_13);
|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_12);
HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10);

View File

@ -115,6 +115,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = CH438_2_INT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(CH438_2_INT_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = CH438_AMOD_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@ -150,10 +156,10 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(HART13_RTS_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = CH438_INT_Pin;
GPIO_InitStruct.Pin = CH438_1_INT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(CH438_INT_GPIO_Port, &GPIO_InitStruct);
HAL_GPIO_Init(CH438_1_INT_GPIO_Port, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI2_IRQn, 5, 0);

View File

@ -105,6 +105,7 @@ int main(void)
/* Start scheduler */
osKernelStart();
/* We should never get here as control is now taken by the scheduler */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
@ -165,9 +166,12 @@ void SystemClock_Config(void)
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if (CH438_INT_Pin == GPIO_Pin)
if (CH438_1_INT_Pin == GPIO_Pin)
{
ch438_interrupt_handler_ch438_chip_1();
}
if (CH438_2_INT_Pin == GPIO_Pin)
{
ch438_interrupt_handler_ch438_chip_2();
}
}

View File

@ -20,6 +20,7 @@
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */

View File

@ -169,7 +169,7 @@ void EXTI2_IRQHandler(void)
/* USER CODE BEGIN EXTI2_IRQn 0 */
/* USER CODE END EXTI2_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(CH438_INT_Pin);
HAL_GPIO_EXTI_IRQHandler(CH438_1_INT_Pin);
/* USER CODE BEGIN EXTI2_IRQn 1 */
// ch438_interrupt_handler();
/* USER CODE END EXTI2_IRQn 1 */

Binary file not shown.

View File

@ -204,7 +204,7 @@ static void low_level_init(struct netif *netif)
/* USER CODE BEGIN MACADDRESS */
MACAddr[3] = (uint8_t)HAL_GetUIDw0();
MACAddr[4] = (uint8_t)HAL_GetUIDw1();
MACAddr[5] = (uint8_t)HAL_GetUIDw2();
MACAddr[5] = (netif->ip_addr.addr >> 24) & 0xFF;
heth.Init.MACAddr = &MACAddr[0];
/* USER CODE END MACADDRESS */

View File

@ -51,14 +51,20 @@
#define MEMP_NUM_TCP_PCB 20
/*----- Value in opt.h for MEM_ALIGNMENT: 1 -----*/
#define MEM_ALIGNMENT 4
/*----- Default Value for MEMP_NUM_PBUF: 16 ---*/
#define MEMP_NUM_PBUF 32
/*----- Default Value for MEMP_NUM_RAW_PCB: 4 ---*/
#define MEMP_NUM_RAW_PCB 20
/*----- Default Value for MEMP_NUM_TCP_PCB_LISTEN: 8 ---*/
#define MEMP_NUM_TCP_PCB_LISTEN 20
/*----- Default Value for MEMP_NUM_TCP_SEG: 16 ---*/
#define MEMP_NUM_TCP_SEG 32
/*----- Default Value for MEMP_NUM_NETCONN: 4 ---*/
#define MEMP_NUM_NETCONN 20
/*----- Default Value for MEMP_NUM_SELECT_CB: 4 ---*/
#define MEMP_NUM_SELECT_CB 20
/*----- Default Value for PBUF_POOL_BUFSIZE: 592 ---*/
#define PBUF_POOL_BUFSIZE 1024
/*----- Value in opt.h for LWIP_ETHERNET: LWIP_ARP || PPPOE_SUPPORT -*/
#define LWIP_ETHERNET 1
/*----- Value in opt.h for LWIP_DNS_SECURE: (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT) -*/

View File

@ -195,12 +195,37 @@
<WinNumber>1</WinNumber>
<ItemText>tcp_echo_flags</ItemText>
</Ww>
<Ww>
<count>9</count>
<WinNumber>1</WinNumber>
<ItemText>hart_uart</ItemText>
</Ww>
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>heth</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>ipaddr</ItemText>
</Ww>
<Ww>
<count>12</count>
<WinNumber>1</WinNumber>
<ItemText>tcp_times,0x0A</ItemText>
</Ww>
<Ww>
<count>13</count>
<WinNumber>1</WinNumber>
<ItemText>uart_times,0x0A</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>0x08014428</ItemText>
<ItemText>\\valve_debugging\../LWIP/Target/ethernetif.c\heth.Init.MACAddr</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
@ -658,7 +683,7 @@
<Group>
<GroupName>Application/User/LWIP/Target</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -678,7 +703,7 @@
<Group>
<GroupName>Application/User/LWIP/App</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -1890,7 +1915,7 @@
<Group>
<GroupName>User/application</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>

View File

@ -16,8 +16,8 @@
<TargetCommonOption>
<Device>STM32F407ZGTx</Device>
<Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F4xx_DFP.2.17.1</PackID>
<PackURL>https://www.keil.com/pack/</PackURL>
<PackID>Keil.STM32F4xx_DFP.2.12.0</PackID>
<PackURL>http://www.keil.com/pack</PackURL>
<Cpu>IRAM(0x20000000-0x2001BFFF) IRAM2(0x2001C000-0x2001FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4") TZ</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@ struct tcp_pcb *server_pcb_hart[TCP_MAX] = {0};
// communication_ao_t *user_communication_ao = NULL;
uint8_t tcp_echo_flags[TCP_MAX] = {0};
uint32_t tcp_times[TCP_MAX] = {0};
uart_t hart_uart[TCP_MAX] = {0};
extern uint8_t tcp_echo_flags_control;
@ -40,8 +40,9 @@ static err_t tcpecho_recv_hart1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
tcp_recved(tpcb, p->tot_len); // 读取数据的控制块 得到所有数据的长度
server_pcb_hart[TCP_HART1] = tpcb; // 直接赋值
memcpy(hart_uart[TCP_HART1].tx_data, (int *)p->payload, p->tot_len);
HAL_GPIO_TogglePin(PE5_LED_GPIO_Port, PE5_LED_Pin); // 接收数据时LED闪烁
ch438_send_data(TCP_HART1, hart_uart[TCP_HART1].tx_data, p->tot_len);
tcp_times[TCP_HART1]++;
pbuf_free(p);
}
else if (err == ERR_OK) // 检测到对方主动关闭连接时也会调用recv函数此时p为空
@ -61,6 +62,7 @@ static err_t tcpecho_recv_hart2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
server_pcb_hart[TCP_HART2] = tpcb; // 直接赋值
memcpy(hart_uart[TCP_HART2].tx_data, (int *)p->payload, p->tot_len);
ch438_send_data(TCP_HART2, hart_uart[TCP_HART2].tx_data, p->tot_len);
tcp_times[TCP_HART2]++;
pbuf_free(p);
}
else if (err == ERR_OK) // 检测到对方主动关闭连接时也会调用recv函数此时p为空
@ -80,6 +82,7 @@ static err_t tcpecho_recv_hart3(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
server_pcb_hart[TCP_HART3] = tpcb; // 直接赋值
memcpy(hart_uart[TCP_HART3].tx_data, (int *)p->payload, p->tot_len);
ch438_send_data(TCP_HART3, hart_uart[TCP_HART3].tx_data, p->tot_len);
tcp_times[TCP_HART3]++;
pbuf_free(p);
}
else if (err == ERR_OK) // 检测到对方主动关闭连接时也会调用recv函数此时p为空
@ -99,6 +102,7 @@ static err_t tcpecho_recv_hart4(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
server_pcb_hart[TCP_HART4] = tpcb; // 直接赋值
memcpy(hart_uart[TCP_HART4].tx_data, (int *)p->payload, p->tot_len);
ch438_send_data(TCP_HART4, hart_uart[TCP_HART4].tx_data, p->tot_len);
tcp_times[TCP_HART4]++;
pbuf_free(p);
}
else if (err == ERR_OK) // 检测到对方主动关闭连接时也会调用recv函数此时p为空
@ -118,6 +122,7 @@ static err_t tcpecho_recv_hart5(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
server_pcb_hart[TCP_HART5] = tpcb; // 直接赋值
memcpy(hart_uart[TCP_HART5].tx_data, (int *)p->payload, p->tot_len);
ch438_send_data(TCP_HART5, hart_uart[TCP_HART5].tx_data, p->tot_len);
tcp_times[TCP_HART5]++;
pbuf_free(p);
}
else if (err == ERR_OK) // 检测到对方主动关闭连接时也会调用recv函数此时p为空

View File

@ -1,30 +1,15 @@
/*
* @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
* @Date: 2025-03-10 10:56:37
* @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
* @LastEditTime: 2025-04-14 16:49:18
* @FilePath: \valve_debugging\User\board\inc\leds.h
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#ifndef __LEDS_H__
#define __LEDS_H__
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#define LED_STATE_OFF 0
#define LED_STATE_ON 1
#define LED_TIM TIM12
typedef enum
{
LEDS2_RED,
LEDS2_GREEN,
LEDS2_YELLOW,
LEDS3_RED,
LEDS3_GREEN,
LEDS3_YELLOW,
LEDS_MAX,
} leds_e;
extern void leds_on(leds_e io);
extern void leds_off(leds_e io);
extern void leds_on_all(void);
extern void leds_off_all(void);
extern unsigned char tim_led_state;
// extern void lan8720_reset(void);
#endif

View File

@ -1,112 +1,9 @@
/*
* @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
* @Date: 2025-03-10 10:56:37
* @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
* @LastEditTime: 2025-04-14 16:49:08
* @FilePath: \valve_debugging\User\board\src\leds.c
* @Description: ,`customMade`, koroFileHeader查看配置 : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#include "leds.h"
unsigned char tim_led_state = 0;
/**
* @brief LED灯
*
* LED灯枚举值LED灯
*
* @param io LED灯的枚举值LED灯
*/
void leds_on(leds_e io)
{
switch (io)
{
case LEDS2_RED:
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_RESET);
break;
case LEDS2_GREEN:
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_RESET);
break;
case LEDS2_YELLOW:
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_RESET);
break;
case LEDS3_RED:
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_RESET);
break;
case LEDS3_GREEN:
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_RESET);
break;
case LEDS3_YELLOW:
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_RESET);
break;
default:
break;
}
}
/**
* @brief LED灯
*
* LED灯枚举值LED灯
*
* @param io LED灯的枚举值
*/
void leds_off(leds_e io)
{
switch (io)
{
case LEDS2_RED:
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_SET);
break;
case LEDS2_GREEN:
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_SET);
break;
case LEDS2_YELLOW:
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_SET);
break;
case LEDS3_RED:
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_SET);
break;
case LEDS3_GREEN:
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_SET);
break;
case LEDS3_YELLOW:
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_SET);
break;
default:
break;
}
}
/**
* @brief LED灯
*
* LED灯打开
*
* GPIO端口和引脚上的电平设置为低电平GPIO_PIN_RESET
* LED灯
*/
void leds_on_all(void)
{
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_RESET);
}
/**
* @brief LED灯
*
* LED灯关闭
*/
void leds_off_all(void)
{
HAL_GPIO_WritePin(LED2_R_GPIO_Port, LED2_R_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_G_GPIO_Port, LED2_G_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_Y_GPIO_Port, LED2_Y_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_R_GPIO_Port, LED3_R_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_G_GPIO_Port, LED3_G_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED3_Y_GPIO_Port, LED3_Y_Pin, GPIO_PIN_SET);
}
// void lan8720_reset(void)
// {
// LL_GPIO_ResetOutputPin(ETH_RESET_GPIO_Port, ETH_RESET_Pin);
// HAL_Delay(55);
// LL_GPIO_SetOutputPin(ETH_RESET_GPIO_Port, ETH_RESET_Pin);
// HAL_Delay(55);
// }

View File

@ -27,7 +27,7 @@ const uint8_t Interruptnum[] = {
ch438_uart_data_t ch438_uart_data[16] = {0};
uint8_t receive_data_len;
uint32_t uart_times[TCP_MAX] = {0};
static void ch438_tranconfig(uint8_t uart_num);
static void ch438_set_baudrate(uint8_t uart_num, uint32_t baudrate);
@ -260,7 +260,8 @@ void ch438_send_data(uint8_t uart_num, uint8_t *data, uint16_t len)
{
hart_ht1200m_rts_io_send(uart_num);
uint8_t ch438_num = 0;
data[len] = 0xff; // 因为发送数据RHART的RTS需要延时这里用多一个字节的发送来代替延时
data[len] = 0xff; // 因为发送数据RHART的RTS需要延时这里用多一个字节的发送来代替延时
data[len + 1] = 0xff; // 因为发送数据RHART的RTS需要延时这里用多两个字节的发送来代替延时
if (uart_num < 8)
{
ch438_num = CH438_CHIP0;
@ -270,10 +271,11 @@ void ch438_send_data(uint8_t uart_num, uint8_t *data, uint16_t len)
ch438_num = CH438_CHIP1;
uart_num -= 8;
}
for (uint8_t i = 0; i < len + 1; i++)
for (uint8_t i = 0; i < len + 2; i++)
{
ch438_write_reg(ch438_num, offsetadd[uart_num] | REG_THR_ADDR, data[i], 1);
}
HAL_Delay(1); // 延时1ms等待数据发送完成
}
uint8_t ch438_recv_data(uint8_t uart_num, uint8_t *data)
{
@ -345,6 +347,7 @@ void ch438_interrupt_handler_ch438_chip_1(void)
if (tcp_echo_flags[i] == 1)
{
user_send_data_hart(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
uart_times[i]++;
}
break;
case INT_RCV_SUCCESS: /* 接收数据可用中断 */
@ -352,6 +355,7 @@ void ch438_interrupt_handler_ch438_chip_1(void)
if (tcp_echo_flags[i] == 1)
{
user_send_data_hart(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
uart_times[i]++;
}
break;
case INT_RCV_LINES: /* 接收线路状态中断 */
@ -398,6 +402,7 @@ void ch438_interrupt_handler_ch438_chip_2(void)
if (tcp_echo_flags[i] == 1)
{
user_send_data_hart(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
uart_times[i]++;
}
break;
case INT_RCV_SUCCESS: /* 接收数据可用中断 */
@ -405,6 +410,7 @@ void ch438_interrupt_handler_ch438_chip_2(void)
if (tcp_echo_flags[i] == 1)
{
user_send_data_hart(i, ch438_uart_data[i].receive_data_buff, ch438_uart_data[i].receive_data_length);
uart_times[i]++;
}
break;
case INT_RCV_LINES: /* 接收线路状态中断 */

View File

@ -27,16 +27,19 @@ GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
LWIP.BSP.number=1
LWIP.GATEWAY_ADDRESS=192.168.001.222
LWIP.IPParameters=LWIP_DHCP,IP_ADDRESS,NETMASK_ADDRESS,GATEWAY_ADDRESS,MEMP_NUM_TCP_PCB_LISTEN,MEMP_NUM_NETCONN,MEMP_NUM_RAW_PCB,MEMP_NUM_SELECT_CB,MEMP_NUM_REASSDATA,MEMP_NUM_TCP_PCB
LWIP.IPParameters=LWIP_DHCP,IP_ADDRESS,NETMASK_ADDRESS,GATEWAY_ADDRESS,MEMP_NUM_TCP_PCB_LISTEN,MEMP_NUM_NETCONN,MEMP_NUM_RAW_PCB,MEMP_NUM_SELECT_CB,MEMP_NUM_REASSDATA,MEMP_NUM_TCP_PCB,MEMP_NUM_PBUF,MEMP_NUM_TCP_SEG,PBUF_POOL_BUFSIZE
LWIP.IP_ADDRESS=192.168.001.029
LWIP.LWIP_DHCP=0
LWIP.MEMP_NUM_NETCONN=20
LWIP.MEMP_NUM_PBUF=32
LWIP.MEMP_NUM_RAW_PCB=20
LWIP.MEMP_NUM_REASSDATA=5
LWIP.MEMP_NUM_SELECT_CB=20
LWIP.MEMP_NUM_TCP_PCB=20
LWIP.MEMP_NUM_TCP_PCB_LISTEN=20
LWIP.MEMP_NUM_TCP_SEG=32
LWIP.NETMASK_ADDRESS=255.255.255.000
LWIP.PBUF_POOL_BUFSIZE=1024
LWIP.Version=v2.1.2_Cube
LWIP0.BSP.STBoard=false
LWIP0.BSP.api=BSP_COMPONENT_DRIVER
@ -143,8 +146,8 @@ Mcu.PinsNb=77
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407ZGTx
MxCube.Version=6.8.0
MxDb.Version=DB.6.0.80
MxCube.Version=6.9.2
MxDb.Version=DB.6.0.92
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.ETH_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
@ -289,7 +292,7 @@ PD12.Signal=GPIO_Output
PD14.Signal=FSMC_D0_DA0
PD15.Signal=FSMC_D1_DA1
PD2.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
PD2.GPIO_Label=CH438_INT
PD2.GPIO_Label=CH438_1_INT
PD2.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_FALLING
PD2.GPIO_PuPd=GPIO_PULLUP
PD2.Locked=true
@ -382,7 +385,11 @@ PE9.Signal=FSMC_D6_DA6
PF0.Signal=FSMC_A0
PF1.Signal=FSMC_A1
PF12.Signal=FSMC_A6
PF13.Signal=FSMC_A7
PF13.GPIOParameters=GPIO_PuPd,GPIO_Label
PF13.GPIO_Label=CH438_2_INT
PF13.GPIO_PuPd=GPIO_PULLUP
PF13.Locked=true
PF13.Signal=GPXTI13
PF14.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
PF14.GPIO_Label=CH438_AMOD
PF14.GPIO_PuPd=GPIO_PULLDOWN
@ -512,6 +519,8 @@ ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=MDK-ARM V5.32
ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_LWIP_Init-LWIP-false-HAL-false,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true,6-MX_FSMC_Init-FSMC-false-HAL-true
RCC.48MHZClocksFreq_Value=55296000
@ -547,30 +556,27 @@ RCC.VCOI2SOutputFreq_Value=353894400
RCC.VCOInputFreq_Value=1843200
RCC.VCOOutputFreq_Value=221184000
RCC.VcooutputI2S=176947200
SH.FSMC_A0.0=FSMC_A0,8b-a1
SH.FSMC_A0.1=FSMC_A0,8b-a2
SH.FSMC_A0.0=FSMC_A0,7b-a1
SH.FSMC_A0.1=FSMC_A0,7b-a2
SH.FSMC_A0.ConfNb=2
SH.FSMC_A1.0=FSMC_A1,8b-a1
SH.FSMC_A1.1=FSMC_A1,8b-a2
SH.FSMC_A1.0=FSMC_A1,7b-a1
SH.FSMC_A1.1=FSMC_A1,7b-a2
SH.FSMC_A1.ConfNb=2
SH.FSMC_A2.0=FSMC_A2,8b-a1
SH.FSMC_A2.1=FSMC_A2,8b-a2
SH.FSMC_A2.0=FSMC_A2,7b-a1
SH.FSMC_A2.1=FSMC_A2,7b-a2
SH.FSMC_A2.ConfNb=2
SH.FSMC_A3.0=FSMC_A3,8b-a1
SH.FSMC_A3.1=FSMC_A3,8b-a2
SH.FSMC_A3.0=FSMC_A3,7b-a1
SH.FSMC_A3.1=FSMC_A3,7b-a2
SH.FSMC_A3.ConfNb=2
SH.FSMC_A4.0=FSMC_A4,8b-a1
SH.FSMC_A4.1=FSMC_A4,8b-a2
SH.FSMC_A4.0=FSMC_A4,7b-a1
SH.FSMC_A4.1=FSMC_A4,7b-a2
SH.FSMC_A4.ConfNb=2
SH.FSMC_A5.0=FSMC_A5,8b-a1
SH.FSMC_A5.1=FSMC_A5,8b-a2
SH.FSMC_A5.0=FSMC_A5,7b-a1
SH.FSMC_A5.1=FSMC_A5,7b-a2
SH.FSMC_A5.ConfNb=2
SH.FSMC_A6.0=FSMC_A6,8b-a1
SH.FSMC_A6.1=FSMC_A6,8b-a2
SH.FSMC_A6.0=FSMC_A6,7b-a1
SH.FSMC_A6.1=FSMC_A6,7b-a2
SH.FSMC_A6.ConfNb=2
SH.FSMC_A7.0=FSMC_A7,8b-a1
SH.FSMC_A7.1=FSMC_A7,8b-a2
SH.FSMC_A7.ConfNb=2
SH.FSMC_D0_DA0.0=FSMC_D0,8b-d2
SH.FSMC_D0_DA0.1=FSMC_D0,8b-d1
SH.FSMC_D0_DA0.ConfNb=2
@ -601,6 +607,8 @@ SH.FSMC_NOE.ConfNb=2
SH.FSMC_NWE.0=FSMC_NWE,Sram1
SH.FSMC_NWE.1=FSMC_NWE,Sram2
SH.FSMC_NWE.ConfNb=2
SH.GPXTI13.0=GPIO_EXTI13
SH.GPXTI13.ConfNb=1
SH.GPXTI2.0=GPIO_EXTI2
SH.GPXTI2.ConfNb=1
SH.S_TIM2_CH4.0=TIM2_CH4,PWM Generation4 CH4