备份,通讯卡死情况
This commit is contained in:
parent
6f397f6161
commit
38adf29ce9
|
@ -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
|
||||
|
|
|
@ -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 ########################## */
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
|
|
@ -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.
Binary file not shown.
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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) -*/
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
@ -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为空
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
// }
|
||||
|
|
|
@ -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: /* 接收线路状态中断 */
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue