2026-08-10 21:18:36 +08:00
|
|
|
|
#ifndef __UART_H
|
|
|
|
|
|
#define __UART_H
|
|
|
|
|
|
|
|
|
|
|
|
#include "main.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define UART1_RX_BUF_SIZE 64
|
|
|
|
|
|
#define UART2_RX_BUF_SIZE 64
|
|
|
|
|
|
|
|
|
|
|
|
extern UART_HandleTypeDef huart1;
|
|
|
|
|
|
extern UART_HandleTypeDef huart2; /* RS485 ι<>ϳ<EFBFBD> */
|
|
|
|
|
|
extern UART_HandleTypeDef huart3; /* 4G Air780E */
|
|
|
|
|
|
extern UART_HandleTypeDef huart4; /* WiFi ESP-01S (PC10=TX, PC11=RX) */
|
2026-08-12 14:32:03 +08:00
|
|
|
|
extern UART_HandleTypeDef huart5; /* HLW8032 <20><><EFBFBD><EFBFBD>оƬ (PD2=RX, ֻ<><D6BB>) */
|
2026-08-10 21:18:36 +08:00
|
|
|
|
extern volatile uint8_t uart1_rx_ready;
|
|
|
|
|
|
extern uint8_t uart1_rx_buf[UART1_RX_BUF_SIZE];
|
|
|
|
|
|
|
|
|
|
|
|
extern volatile uint8_t uart2_rx_ready;
|
|
|
|
|
|
extern uint8_t uart2_rx_buf[UART2_RX_BUF_SIZE];
|
|
|
|
|
|
|
|
|
|
|
|
extern volatile uint32_t g_uart4_rxcplt_cnt; /* DMA <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD> */
|
|
|
|
|
|
extern volatile uint32_t g_uart4_ore_cnt; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD> */
|
|
|
|
|
|
|
|
|
|
|
|
void MX_USART1_UART_Init(void);
|
|
|
|
|
|
void MX_USART2_UART_Init(void);
|
|
|
|
|
|
void MX_USART3_UART_Init(void);
|
|
|
|
|
|
void MX_UART4_UART_Init(void);
|
2026-08-12 14:32:03 +08:00
|
|
|
|
void MX_UART5_UART_Init(void);
|
2026-08-10 21:18:36 +08:00
|
|
|
|
void USART3_StartRx(void); /* <20><><EFBFBD><EFBFBD> USART3 DMA+IDLE <20><><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void USART3_StopRx(void); /* ֹͣ USART3 DMA <20><><EFBFBD>գ<EFBFBD><D5A3><EFBFBD> WiFi ͨ<><CDA8>ʱ<EFBFBD><CAB1><EFBFBD>ã<EFBFBD><C3A3>ͷŹ<CDB7><C5B9><EFBFBD> Rx_Buf<75><66> */
|
|
|
|
|
|
void USART3_SetBaudRate(uint32_t baud); /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD> USART3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void UART4_StartRx(void); /* <20><><EFBFBD><EFBFBD> UART4 DMA+IDLE <20><><EFBFBD>գ<EFBFBD><D5A3><EFBFBD> USART3 <20><><EFBFBD><EFBFBD> Rx_Buf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD> */
|
|
|
|
|
|
void UART4_StopRx(void); /* ֹͣ UART4 DMA <20><><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void UART4_SetBaudRate(uint32_t baud); /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD> UART4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void USART1_StartRx(void); /* <20><><EFBFBD><EFBFBD> USART1 <20>жϽ<D0B6><CFBD><EFBFBD> */
|
|
|
|
|
|
void USART2_StartRx(void); /* <20><><EFBFBD><EFBFBD> USART2 <20>жϽ<D0B6><CFBD><EFBFBD> */
|
2026-08-12 14:32:03 +08:00
|
|
|
|
void UART5_StartRx(void); /* <20><><EFBFBD><EFBFBD> UART5 <20>жϽ<D0B6><CFBD>գ<EFBFBD>HLW8032<33><32> */
|
2026-08-10 21:18:36 +08:00
|
|
|
|
void USART2_Tick(void); /* <20><><EFBFBD><EFBFBD> USART2 ֡<><D6A1>ʱ<EFBFBD>Զ<EFBFBD><D4B6>ύ */
|
|
|
|
|
|
uint16_t USART2_GetFrame(uint8_t *out, uint16_t out_size); /* <20><> USART2 ȡһ֡ԭʼ<D4AD>ֽ<EFBFBD> */
|
|
|
|
|
|
int USART1_CheckCommand(const char *cmd); /* <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>յ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3A8><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>Сд<D0A1><D0B4> */
|
|
|
|
|
|
const char *USART1_GetCommand(void); /* <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> */
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|