1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。 2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
139 lines
4.1 KiB
C
139 lines
4.1 KiB
C
#ifndef _USART_H_
|
|
#define _USART_H_
|
|
|
|
#include "stdint.h"
|
|
|
|
#if (USE_CORE_TYPE == 1) //使用C1F核心板
|
|
|
|
/*485控制引脚*/
|
|
#define MCU485_PIN_1 GPIO_Pin_10 //PA10
|
|
#define MCU485_PIN_2 GPIO_Pin_11 //PA11
|
|
#define MCU485_PIN_3 GPIO_Pin_11 //PB11
|
|
|
|
#define MCU485_EN1_H GPIOA_SetBits(MCU485_PIN_1)
|
|
#define MCU485_EN1_L GPIOA_ResetBits(MCU485_PIN_1)
|
|
#define MCU485_EN2_H GPIOA_SetBits(MCU485_PIN_2)
|
|
#define MCU485_EN2_L GPIOA_ResetBits(MCU485_PIN_2)
|
|
#define MCU485_EN3_H GPIOB_SetBits(MCU485_PIN_3)
|
|
#define MCU485_EN3_L GPIOB_ResetBits(MCU485_PIN_3)
|
|
|
|
#elif (USE_CORE_TYPE == 2) //使用C1核心板
|
|
|
|
/*485控制引脚*/
|
|
#define MCU485_PIN_1 GPIO_Pin_21 //PB21
|
|
#define MCU485_PIN_2 GPIO_Pin_1 //PA1
|
|
#define MCU485_PIN_3 GPIO_Pin_0 //PA0
|
|
|
|
#define MCU485_EN1_H GPIOB_SetBits(MCU485_PIN_1)
|
|
#define MCU485_EN1_L GPIOB_ResetBits(MCU485_PIN_1)
|
|
#define MCU485_EN2_H GPIOA_SetBits(MCU485_PIN_2)
|
|
#define MCU485_EN2_L GPIOA_ResetBits(MCU485_PIN_2)
|
|
#define MCU485_EN3_H GPIOA_SetBits(MCU485_PIN_3)
|
|
#define MCU485_EN3_L GPIOA_ResetBits(MCU485_PIN_3)
|
|
|
|
#endif //USE_CORE_TYPE == CORE_TYPE_C1F
|
|
|
|
|
|
#define USART_RecvBuff_Size 1024 //串口接收数组定义大小
|
|
#define Recv_115200_TimeOut 3 //ms
|
|
#define UART_BUFFER_SIZE 0x000400
|
|
|
|
/********************************************************/
|
|
//SRAM Uart缓冲区相关定义
|
|
#define SRAM_Uart_Buffer_Size UART_BUFFER_SIZE //串口缓存一包数据大小
|
|
|
|
#define SRAM_UART0_RecvBuffer_Start_Addr 0x010000
|
|
#define SRAM_UART0_RecvBuffer_End_Addr 0x010FFF
|
|
#define SRAM_UART0_SendBuffer_Start_Addr 0x011000
|
|
#define SRAM_UART0_SendBuffer_End_Addr 0x011FFF
|
|
|
|
#define SRAM_UART1_RecvBuffer_Start_Addr 0x012000
|
|
#define SRAM_UART1_RecvBuffer_End_Addr 0x012FFF
|
|
#define SRAM_UART1_SendBuffer_Start_Addr 0x013000
|
|
#define SRAM_UART1_SendBuffer_End_Addr 0x013FFF
|
|
|
|
#define SRAM_UART2_RecvBuffer_Start_Addr 0x014000
|
|
#define SRAM_UART2_RecvBuffer_End_Addr 0x014FFF
|
|
#define SRAM_UART2_SendBuffer_Start_Addr 0x015000
|
|
#define SRAM_UART2_SendBuffer_End_Addr 0x015FFF
|
|
|
|
#define SRAM_UART3_RecvBuffer_Start_Addr 0x016000
|
|
#define SRAM_UART3_RecvBuffer_End_Addr 0x016FFF
|
|
#define SRAM_UART3_SendBuffer_Start_Addr 0x017000
|
|
#define SRAM_UART3_SendBuffer_End_Addr 0x017FFF
|
|
|
|
|
|
|
|
/********************************************************/
|
|
|
|
typedef enum
|
|
{
|
|
USART_0,
|
|
USART_1,
|
|
USART_2,
|
|
USART_3,
|
|
USART_NUM,
|
|
}USART_IDX;
|
|
|
|
#pragma pack(1)
|
|
|
|
typedef struct
|
|
{
|
|
//uint8_t sn;
|
|
uint8_t sendFlag; //发送标志位
|
|
uint8_t sendStatus; //发送状态
|
|
uint8_t recvFlag;
|
|
uint8_t recvBuffer[UART_BUFFER_SIZE];
|
|
|
|
uint16_t recvLen;
|
|
uint32_t recvTimeout;
|
|
uint32_t recvIdleTiming;
|
|
|
|
uint32_t TX_Buffer_WriteAddr;
|
|
uint32_t TX_Buffer_ReadAddr;
|
|
uint32_t RX_Buffer_WriteAddr;
|
|
uint32_t RX_Buffer_ReadAddr;
|
|
}UART_t;
|
|
|
|
#pragma pack()
|
|
|
|
void USART_INIT(uint8_t usart,uint32_t baudrate);
|
|
void Set_Uart_recvTimeout(UART_t *set_uart,uint32_t baud);
|
|
uint8_t Uart0_GetStart(void);
|
|
uint8_t Uart1_GetStart(void);
|
|
uint8_t Uart2_GetStart(void);
|
|
uint8_t Uart3_GetStart(void);
|
|
void UART0_ChangeBaud(uint32_t baudrate);
|
|
void UART1_ChangeBaud(uint32_t baudrate);
|
|
void UART2_ChangeBaud(uint32_t baudrate);
|
|
void UART3_ChangeBaud(uint32_t baudrate);
|
|
void MCU485_SendString_0(uint8_t *buf, uint16_t l);
|
|
void MCU485_SendString_1(uint8_t *buf, uint16_t l);
|
|
void MCU485_SendString_2(uint8_t *buf, uint16_t l);
|
|
void MCU485_SendString_3(uint8_t *buf, uint16_t l);
|
|
void UART0_RECEIVE(void);
|
|
void UART1_RECEIVE(void);
|
|
void UART2_RECEIVE(void);
|
|
void UART3_RECEIVE(void);
|
|
void Uart2_RECEIVE_Process(void);
|
|
|
|
uint8_t Uart_Search_Cmd(uint8_t *buff,uint8_t len);
|
|
uint8_t Uart_Jump_Cmd(uint8_t *buff,uint8_t len);
|
|
uint8_t Uart_Search_Cmd_from_SRAM(uint32_t addr, uint8_t len);
|
|
uint8_t Uart_Jump_Cmd_from_SRAM(uint32_t addr, uint8_t len);
|
|
void Uart0_Flush(uint16_t over_time);
|
|
void Uart1_Flush(uint16_t over_time);
|
|
void Uart2_Flush(uint16_t over_time);
|
|
void Uart3_Flush(uint16_t over_time);
|
|
|
|
void Uart_SendString(uint8_t uart_id,uint8_t* buff,uint16_t len);
|
|
void MCU485_SendString(uint8_t uart_id,uint8_t* buff,uint16_t len);
|
|
void MCU485_SendSRAMData(uint8_t uart_id,uint32_t data_addr,uint16_t len);
|
|
void Write_Uart_SendBuff(uint8_t uart_id,uint8_t uart_outime,uint8_t* buff,uint16_t len);
|
|
|
|
|
|
extern UART_t g_Uart[4];
|
|
|
|
|
|
#endif
|