#include "../main/SystemInclude.h" const u32 baudRateVaule[6] ={4800, 9600, 19200, 38400, 57600, 115200}; COM_DATA_TypeDef comState; void StartDMAForRxdMainUartData(void) { #ifndef ENABLE_TURN_OFF_RS485 #pragma message("[undefined] ENABLE_TURN_OFF_RS485") #elif(ENABLE_TURN_OFF_RS485) RS485_Enable_RX(); #endif comState.state.ReceivedData = 0 ; //重置接收完成标志 comState.state.SendingData = 0 ; //重置发送中标志 DMA_UART_AnyLength_Rx_Init(baudRateVaule[baudRate]);//初始化UART DMA接收并开始接收 //接收指针指向接收数组 comState.state.ReceivedData = 0 ;//接收完成标志位 } void DMAForUART_Tx_Callback(void) { comState.state.SendingData = 0 ; //UART DMA发送完成 LHL_DMA_Stop(&DMA_Handle_UartTx); //关闭DMA发送数据 RestartDMAForRxdMainUartData(); //切换回接收 } void StartDMAForTxdMainUartData(void) { LHL_DMA_Stop(&DMA_Handle_UartRx);//关闭DMA接收数据 #ifndef ENABLE_TURN_OFF_RS485 #pragma message("[undefined] ENABLE_TURN_OFF_RS485") #elif(ENABLE_TURN_OFF_RS485) RS485_Enable_TX(); #endif comState.state.SendingData = 1 ; comState.TxLenth = MBBuf.TxdLen; // memcpy(comState.TxdData, MBBuf.TxPointer, comState.TxLenth ); // for (u8 i=0;i