#include "rs485.h" #include "delay.h" #include "readdevicedata.h" #include "devicegpioinit.h" #include "gpio.h" #define SEND_MAX_NUM 200 u8 share_sendbuf[SEND_MAX_NUM]={0}; /****************************************** * func: RS485_Usart_Init * desc: RS485_Usart_Init * input: system_BaudRate * output: none * return: none *****************************************/ void RS485_Usart_Init(uint8 BaudRateCode,uint8 Parity) { uint32 system_BaudRate; UART_SInitTypeDef UART_para; CMU_ClocksType CMU_Clocks; CMU_PERCLK_SetableEx(PADCLK, ENABLE); AltFunIO(RS485_TXD_EN_PIN_GROUP, RS485_TXD_EN_PIN_NUM, ALTFUN_NORMAL); AltFunIO(RS485_RXD_EN_PIN_GROUP, RS485_RXD_EN_PIN_NUM , ALTFUN_NORMAL); //-------------------------------------------------------------------------------- UART_para.BaudRate = BaudRateCode;//²¨ÌØÂÊ UART_para.StopBit = OneBit; //ֹͣλ UART_para.DataBit = Eight8Bit; //Êý¾ÝλÊý UART_para.ParityBit = Parity; //ÆæÅ¼Ð£Ñé CMU_GetClocksFreq(&CMU_Clocks); UART_SInit(UART1, &UART_para,&CMU_Clocks); //³õʼ»¯uart // UARTx_IER_RXBF_IE_Setable(UART1, ENABLE);//½ÓÊÕ»º´æÂúÖжÏʹÄÜ ÐèҪʹÓýÓÊÕÖжϴò¿ª´Ë´¦ÉèÖà // UARTx_IER_TXSE_IE_Setable(UART1, ENABLE)£»//·¢ËÍ»º´æ¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿ÕÖжÏʹÄÜ ÐèҪʹÓ÷¢ËÍÖжϴò¿ª´Ë´¦ÉèÖà NVIC_DisableIRQ(UART1_IRQn); // NVIC_SetPriority(UART1_IRQn,2);//ÖжÏÓÅÏȼ¶ÅäÖà // NVIC_EnableIRQ(UART1_IRQn); UARTx_CSR_RXEN_Setable(UART1, ENABLE); //´ò¿ª½ÓÊÕʹÄÜ UARTx_CSR_TXEN_Setable(UART1, ENABLE); //´ò¿ª·¢ËÍʹÄÜ UARTx_ISR_RXBF_Clr(UART1); } /****************************************** * func: RS485_Send_Data * desc: send data by RS485 * input: USARTx - select USART port , buf - send buffer , len - data length * output: none * return: none *****************************************/ void RS485_Send_Data(uint8 *buf,uint16 len) { uint16 t; RS485_RE_H; for(t=0;t