From 96a63685fd53bd939772377296a9e732333e3748 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期一, 28 三月 2022 10:23:16 +0800 Subject: [PATCH] V2.47 可能有无法接收数据的bug --- 源码/核心板/Src/OnChipDevices/Usart.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 46 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..ea3e93b 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,56 @@ #define __USART_H__ #include "stm32f10x.h" +#define EXUART_USE_TXDMA +#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 USART_TX_pin GPIO_Pin_9 -#define USART_RX_pin GPIO_Pin_10 -#define USART_GPIO GPIOA -#define EXT_USART USART1 +//#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 -#define BAUD_RATE 115200 +#define EXUART_BAUD_RADE 921600 +#define EUART_RX_DMA_CH DMA1_Channel5 +#define EUART_TX_DMA_CH DMA1_Channel4 -void Usart_Init(void); +#define EUART_DMA DMA1 +#define EUART_TX_DMA_IT_TC DMA1_IT_TC4 +#define EUART_TX_FRM_SIZE 25 //发送队列中的最大帧数 +#define EUART_TX_FRMBUF_SIZE 110 //发送队列每帧缓存大小 +#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); +////////////////////////////////////////////////////////// +#define EXT_UART2 USART2 +#define UART2_RX_DMA_CH DMA1_Channel6 #endif -- Gitblit v1.9.3