From 4ec239dd5d3838b58873fd61986fc3391eb96a3d Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期四, 03 三月 2022 10:51:40 +0800 Subject: [PATCH] V1.48 支持MODBUS读写参数 --- 源码/核心板/Src/OnChipDevices/Usart.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 48 insertions(+), 6 deletions(-) diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Usart.h" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Usart.h" index 13d3a56..9e501e6 100644 --- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Usart.h" +++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/OnChipDevices/Usart.h" @@ -3,16 +3,58 @@ #define __USART_H__ #include "stm32f10x.h" +//#define BAUDRATE_19200 -#define USART_TX_pin GPIO_Pin_9 -#define USART_RX_pin GPIO_Pin_10 -#define USART_GPIO GPIOA -#define EXT_USART USART1 +#define EU_485_PIN GPIO_Pin_7 +#define EU_485_GPIO GPIOB +#define OUT485_ENABLE GPIO_WriteBit(EU_485_GPIO, EU_485_PIN, Bit_SET); +#define OUT485_DISABLE GPIO_WriteBit(EU_485_GPIO, EU_485_PIN, Bit_RESET); -#define BAUD_RATE 115200 +//#define UART_GPIO_REMAP_ENABLE +#ifdef UART_GPIO_REMAP_ENABLE + #define UART_GPIO_REMAP GPIO_Remap_USART1 + #define EU_RCC_GPIO RCC_APB2Periph_GPIOB + #define EU_TX_PIN GPIO_Pin_6 + #define EU_RX_PIN GPIO_Pin_7 + #define EU_RX_GPIO GPIOB + #define EU_TX_GPIO GPIOB +#else + #define EU_RCC_GPIO RCC_APB2Periph_GPIOA + #define EU_TX_PIN GPIO_Pin_9 + #define EU_RX_PIN GPIO_Pin_10 + #define EU_RX_GPIO GPIOA + #define EU_TX_GPIO GPIOA +#endif +#ifdef BAUDRATE_19200 +#define EXUART_BAUD_RADE 19200 +#else +#define EXUART_BAUD_RADE 115200 +#endif -void Usart_Init(void); +#define EUART_RX_DMA_CH DMA1_Channel5 +#define EUART_TX_DMA_CH DMA1_Channel4 + +#define EUART_TX_FRM_SIZE 14 //发送队列中的最大帧数 +#define EUART_TX_FRMBUF_SIZE 200 //发送队列每帧缓存大小 +#define EUART_RX_BUF_SIZE 200 //接收缓存大小 + +#define EXT_UART USART1 +#define EXT_UART_RCC RCC_APB2Periph_USART1 + +typedef struct _EUART_Frame { //数据发送帧队列结构体 + int32_t len; //帧长度 + uint8_t buf[EUART_TX_FRMBUF_SIZE]; //帧数据 +} EUART_Frame; + +void Uart1_Init(void); + +void UART_CheckReceive(void); +void UART_CheckSend(void); +void UART_PushFrame(uint8_t* pdata, int32_t data_len); +void UART_PopFrame(void); +extern void (*Usart1ParseDataCallback)(uint8_t); +extern u8 cmd_mode; #endif -- Gitblit v1.9.3