shuichan_old/V1.5/STM32F103_App1/HardWare/UART/uart.h

53 lines
2.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 喂料秤 */
extern UART_HandleTypeDef huart3; /* 4G Air780E */
extern UART_HandleTypeDef huart4; /* WiFi ESP-01S (PC10=TX, PC11=RX) */
extern UART_HandleTypeDef huart5; /* HLW8032 计量芯片 (PD2=RX, 只收) */
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 填满重启次数(诊断) */
extern volatile uint32_t g_uart4_ore_cnt; /* 溢出错误次数(诊断) */
void MX_USART1_UART_Init(void);
void MX_USART2_UART_Init(void);
void MX_USART3_UART_Init(void);
void MX_UART4_UART_Init(void);
void MX_UART5_UART_Init(void);
void USART3_StartRx(void); /* 启动 USART3 DMA+IDLE 接收 */
void USART3_StopRx(void); /* 停止 USART3 DMA 接收(切 WiFi 通道时调用,释放共享 Rx_Buf */
void USART3_SetBaudRate(uint32_t baud); /* 运行中切换 USART3 波特率 */
void UART4_StartRx(void); /* 启动 UART4 DMA+IDLE 接收(与 USART3 复用 Rx_Buf互斥使用 */
void UART4_StopRx(void); /* 停止 UART4 DMA 接收 */
void UART4_SetBaudRate(uint32_t baud); /* 运行中切换 UART4 波特率 */
void USART1_StartRx(void); /* 启动 USART1 中断接收 */
void USART2_StartRx(void); /* 启动 USART2 中断接收 */
void UART5_StartRx(void); /* 启动 UART5 中断接收HLW8032 */
void USART2_Tick(void); /* 触发 USART2 帧超时自动提交 */
uint16_t USART2_GetFrame(uint8_t *out, uint16_t out_size);
uint16_t USART2_PollFrame(uint8_t *out, uint16_t out_size); /* 原子取帧(判静默+拷出一步完成) */
void USART2_FlushRxBuf(void);
extern volatile uint32_t g_uart2_rx_byte_cnt;
uint16_t USART2_GetRxIndex(void); /* USART2 收字节计数485 排障) */ /* 清 USART2 软件接收缓冲485 查询前调用,不动硬件) */ /* 从 USART2 取一帧原始字节 */
int USART1_CheckCommand(const char *cmd); /* 检查是否收到指定命令(不区分大小写) */
const char *USART1_GetCommand(void); /* 获取当前接收到的命令字符串 */
extern volatile uint32_t g_wp_pc;
extern uint32_t g_wp_ring[16];
extern uint8_t g_wp_ring_idx;
void dbg_watchpoint_uart2_idx(void);
void dbg_wp_rearm(void);
#endif