E015.D.011-FXLS90230/Drivers/SYSTEM/usart.h

180 lines
5.6 KiB
C
Raw Permalink Normal View History

2025-04-24 11:37:10 +08:00
#ifndef _USART_H
#define _USART_H
//#ifdef __cplusplus
// extern "C" {
//#endif
//////////////////////////////////////////////////////////////////////////////////
//#include "stm32l4xx.h"
//#include "General_type.h"
//#include "stdio.h"
//#define DEBUG_MODE
////#define BAD_DEBUG //<2F>ɰ<EFBFBD><C9B0>ӵ<EFBFBD>PD2 <20><><EFBFBD><EFBFBD>usart1<74>ķ<EFBFBD><C4B7>ͽŲ<CDBD><C5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////#define Board_VerE
////#define TRANS_SPECIAL
//#ifndef IN_USART
//#define EX_USART extern
// #else
//#define EX_USART
//#endif
//#ifdef Board_VerE
// #define UART_RD1_PIN GPIO_PIN_3
// #define UART_RD1_PORT GPIOB
// #define UART1_RX_PIN GPIO_PIN_10
// #define UART1_PORT GPIOA
// #define UART1_TX_PIN GPIO_PIN_9
//#else
//
// #ifdef BAD_DEBUG
// #define UART_RD1_PIN GPIO_PIN_3
// #define UART_RD1_PORT GPIOB
// #else
// #define UART_RD1_PIN GPIO_PIN_8
// #define UART_RD1_PORT GPIOB
// #endif
// #define UART1_RX_PIN GPIO_PIN_10//GPIO_PIN_7
// #define UART1_PORT GPIOA//GPIOB
// #define UART1_TX_PIN GPIO_PIN_9//GPIO_PIN_6
//#endif
//#define RX1_UART() HAL_GPIO_WritePin(UART_RD1_PORT,UART_RD1_PIN,GPIO_PIN_RESET)
//#define TX1_UART() HAL_GPIO_WritePin(UART_RD1_PORT,UART_RD1_PIN,GPIO_PIN_SET)
////#define UART3_RD_PIN GPIO_PIN_15
////#define UART3_RD_PORT GPIOA
////#define UART3_RX_PIN GPIO_PIN_11
////#define UART3_PORT GPIOC
////#define UART3_TX_PIN GPIO_PIN_10
////#define RX3_UART() HAL_GPIO_WritePin(UART3_RD_PORT,UART3_RD_PIN,GPIO_PIN_RESET)
////#define TX3_UART() HAL_GPIO_WritePin(UART3_RD_PORT,UART3_RD_PIN,GPIO_PIN_SET)
//#define USART3_RX_LEN 100
//#define USART1_TX_LEN 150 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD> 200
//#define USART1_RX_LEN 50
//#define RADDR 0x1037
////#define RADDR 0x1037
////EX_USART u8 USART_RX_BUF[USART_REC_LEN]; //<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>,<2C><><EFBFBD><EFBFBD>USART_REC_LEN<45><4E><EFBFBD>ֽ<EFBFBD><>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>з<EFBFBD>
////EX_USART u16 USART_RX_STA; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
////EX_USART UART_HandleTypeDef UART1_Handler; //UART<52><54><EFBFBD><EFBFBD>
//EX_USART UART_HandleTypeDef huart1;//,huart3;
//EX_USART DMA_HandleTypeDef hdma_usart1_rx;
//EX_USART DMA_HandleTypeDef hdma_usart1_tx;
//typedef struct{
// uint8_t TxBuff[USART1_TX_LEN];
// uint16_t TxSize;
// uint8_t Tx_end_flag;
// uint8_t RxBuff[USART1_RX_LEN];
// uint8_t aRxBuff;
// uint16_t RxSize;
// uint8_t Rx_flag;
//}USART_BuffTypeDef;
//EX_USART USART_BuffTypeDef usart1_buf,usart3_buf;
//EX_USART uint8_t wireless_data[50];
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB4AE><EFBFBD>жϽ<D0B6><CFBD>գ<EFBFBD><D5A3>벻Ҫע<D2AA><D7A2><EFBFBD><EFBFBD><EFBFBD>º궨<C2BA><EAB6A8>
////EX_USART void uart3_init(u32 bound);
//EX_USART void debug_printf(char *information,int len);
//EX_USART void MX_USART1_UART_Init(uint32_t bound);
//EX_USART void uart_init(uint32_t bound);
//EX_USART void HAL_UART_IDLECallback(UART_HandleTypeDef *huart);
//EX_USART void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);
//EX_USART void MX_DMA_Init(void) ;
//EX_USART void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart);
//EX_USART void Error_Handler(uint8_t flag);
////EX_USART void Error_Handler(uint8_t flag);
//#ifdef __cplusplus
//}
//#endif
//#endif
//#include "stdio.h"
//#include "./SYSTEM/sys/sys.h"
#include "main.h"
//#include "stm32l433xx.h"
//#include "stm32l4xx.h"
#include "General_type.h"
//#include "system.h"
#include <stdint.h>
#include <stdbool.h>
#define COMM_FRAME_HEAD 0xAA
#define COMPARE55 0x55
#define FREUENCYDATA 0x10
#define THORGHFARE0 0x80
#define THORGHFARE1 0x81
#define DIELECTRICLEGTH 0x08 //<2F><><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>8
//<2F><><EFBFBD><EFBFBD>1<EFBFBD>շ<EFBFBD><D5B7><EFBFBD><EFBFBD>ƶ<EFBFBD>
#define RS485_TX_EN HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET)
#define RS485_RX_EN HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET)
//<2F><><EFBFBD><EFBFBD>2<EFBFBD>շ<EFBFBD><D5B7><EFBFBD><EFBFBD>ƶ<EFBFBD>
#define RS485_UART3TX_EN HAL_GPIO_WritePin(GPIOC, GPIO_PIN_12, GPIO_PIN_SET)
#define RS485_UART3RX_EN HAL_GPIO_WritePin(GPIOC, GPIO_PIN_12, GPIO_PIN_RESET)
#define UART_RX_BUFFER_SIZE 128
#define UART_TX_BUFFER_SIZE 64
typedef enum {
UART_OK,
UART_ERROR,
UART_BUSY
} UART_Status;
//*****************<2A><EFBFBD><E1B9B9><EFBFBD><EFBFBD>******************************************
enum tagUSARTSTATUS {RcvSyn,RcvtargetAddress,RcvsourceAddress,RcvLen,RcvaData,ChkSum,CmdOperate};
//<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ױ<EFBFBD>ʶλ<CAB6><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ĵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>У<EFBFBD><EFBFBD><E9A1A2><EFBFBD><EFBFBD><EEB4A6>
struct tagUSARTDATA
{
unsigned char ucHead; //<2F>ױ<EFBFBD>ʶλ,<2C><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>ʼλ
unsigned char ucRcvtargetAddress; //Ŀ<>ĵ<EFBFBD>ַ,1byte<74><65><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ַ
unsigned char ucRcvsourceAddress; //Դ<><D4B4>ַ,1byte<74><65><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><E8B1B8>ַ
unsigned int ucRcvDataLen;
unsigned char ucRepDataLen;
unsigned char ucDataCount; //<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
//unsigned char aData[170]; //<2F><><EFBFBD><EFBFBD>λ
unsigned char aData[50]; //<2F><><EFBFBD><EFBFBD>λ
unsigned char ucSendChkCrc ; //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
unsigned char ucReceiveChkCrc; //<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
unsigned char ucCommand; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum tagUSARTSTATUS usStatus; //<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>״̬
unsigned char ucReptargetAddress; //Ŀ<>ĵ<EFBFBD>ַ,1byte<74><65><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ַ
unsigned char ucRepsourceAddress; //Դ<><D4B4>ַ,1byte<74><65><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><E8B1B8>ַ
unsigned int ucOverTimeCnt;
};
extern struct tagUSARTDATA g_udUsart3Data; //<2F><><EFBFBD><EFBFBD>2
extern void UART_Init(uint32_t baudrate);
extern void USART3_Init(uint32_t baudrate);
extern void Init_485EN(void);
extern void InitUart3_485EN(void);
extern void UART_SendStr(uint8_t *PData,uint16_t Datalen);
extern UART_Status UART_SendByte(uint8_t data);
extern UART_Status UART_SendString(const char *str);
extern UART_Status UART3_SendByte(uint8_t data);
extern void UART3_SendStr(uint8_t *PData,uint16_t Datalen);
extern void Uart3Rcv(unsigned char ucReadData); //<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
extern void Uart3data_Processing(void); //<2F><><EFBFBD><EFBFBD>2<EFBFBD><32>Ӧ
#endif /* __UART_H */