switch_test/User/usart.h

90 lines
2.0 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 */