90 lines
2.0 KiB
C
90 lines
2.0 KiB
C
#ifndef __USART_H
|
||
#define __USART_H
|
||
|
||
#include "stm32f4xx.h"
|
||
#include "stdio.h"
|
||
|
||
#define RS485_SEND GPIO_SetBits(GPIOE,GPIO_Pin_15); //默认进入发送模式
|
||
#define RS485_RECEIVE GPIO_ResetBits(GPIOE,GPIO_Pin_15); //默认进入接收模式
|
||
|
||
|
||
void USART1_Config(void);
|
||
void RS485_Config(void);
|
||
void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch);
|
||
void Usart_SendString( USART_TypeDef * pUSARTx, char *str);
|
||
void Usart_SendHalfWord( USART_TypeDef * pUSARTx, uint16_t ch);
|
||
void usart_Init(void);
|
||
void RS485_DMA_Init(void);
|
||
//串口3的发送函数
|
||
void Uart3_SendStr(u8* SendBuf,u8 len);
|
||
|
||
void DealWith_UartData(void);
|
||
//微秒延时
|
||
void DelayUs(unsigned int delay);
|
||
|
||
//毫秒延时
|
||
void DelayMs(unsigned int delay);
|
||
|
||
|
||
//接收数据判断(放置串口接收数据内)
|
||
void Do_Receive_Uart_For_Module(unsigned char ch);
|
||
|
||
//单独发送
|
||
void UART1_SendData(unsigned char dat);
|
||
|
||
//发送数据
|
||
void UART1_Send_Char(unsigned char dat);
|
||
|
||
//发送一个字符串
|
||
//extern void send_string(uchar *p);
|
||
|
||
//初始化
|
||
void InitUart_Data(void);
|
||
|
||
//接收串口1
|
||
void start_ttl_receive_timer(unsigned long ms);
|
||
|
||
void over_ttl_receive_timer(void);
|
||
|
||
void clear_ttl_receive_timer(void);
|
||
|
||
|
||
//返回串口屏应答是否接收完成的结果
|
||
//0:没超时 1:超时
|
||
unsigned char judge_ttl_receive_timer(void);
|
||
|
||
//放在大循环中的计时器里
|
||
void process_ttl_receive_timer(void);
|
||
|
||
//放串口中断内,接收数据
|
||
void receive_ttl_data(unsigned char rx_data);
|
||
|
||
//CRC校验
|
||
unsigned int ModbusCRC16(unsigned char *data_value, unsigned char length);
|
||
|
||
//异或校验
|
||
//unsigned char VerfiyRC(unsigned char data_value[], unsigned char length);
|
||
|
||
//发送延时
|
||
void Uart_Send_Delay(unsigned int delay);
|
||
|
||
//发送数据
|
||
void send_set_resp(unsigned int OrderNum, unsigned int addr, unsigned char Num, unsigned char sData[]);
|
||
|
||
//分析地址是否为本地址
|
||
unsigned char Check_Resive_Addr(unsigned short addr);
|
||
|
||
//接收数据判断(放置串口接收数据内)
|
||
void Do_Receive_Uart_For_Module(unsigned char ch);
|
||
|
||
//数据长度
|
||
unsigned char Get_Data_Len(void);
|
||
|
||
//检查校验
|
||
unsigned char Check_VerfiyData(void);
|
||
|
||
//数据接收分析(放置大循环内)
|
||
void Deal_Uart_Data_For_Module(void);
|
||
|
||
#endif /* __USART1_H */
|