⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lg_comm-h

📁 RS485通讯程序,用于PC与单片机通讯,开发上下位机通讯程序
💻
字号:

#ifndef __LG_COMM_H_ICL__
#define	__LG_COMM_H_ICL__

#define		ENQ								0x05
#define		EOT								0x04
#define		ACK								0x06
#define		NAK								0x15

#define		CUR_CTRL_ADDR					0x0006
#define		CUR_FREQ_ADDR					0x0005

#define		MAX_LG_MOTOR_NUM				6

typedef struct
{
	int				StartDevNo;							// 设备号
	int				DevNum;								// 设备数量

	int				InitOk;								// 端口初始化标志
	int				CommNo;								// 所用计算机串口号

	HANDLE 			CommId;								// 端口索引
	OVERLAPPED		Overlapped;

	MODE_DEF		Mode;
	
	int				RevStatus;							// 端口接收状态
	BUF_DEF			RecvBuf;							// 端口接收缓冲区
	
	BUF_DEF			PollCmd;							// 下行命令缓冲区
	int				CurCmdAddr;							// 当前命令地址
	
	int				ReadCtrlCnt;						

	int				CurFreq[MAX_LG_MOTOR_NUM];			// 当前设定频率
	int				CurCtrlMode[MAX_LG_MOTOR_NUM];		// 当前运行控制

	int				SendCmdFlag;						// 下发一命令标志
	int				SendTimeConst;						// 下发命令超时时间常数
	int				SendTimeCnt;						// 下发命令时间计数
	int				SendCmdAckFlag;

} LG_MOTOR_DEF;

void LgMotorReadConfig( void );
void LgMotorInitCommPort( void );
int LgMotorReadCommPort( char *buf, int len );
int LgMotorWriteCommPort( char *buf, int len );

void LgMotorDataProcess( void );
void LgMotorReadCommData( void );

u_char LgMotorCalCheckSum( u_char *buf, int len );
void LgMotorMakeWriteCmd( int startaddr, char *buf, int len );
void LgMotorSendCmd( void );

void LgMotorTimer( void );

// dir = 1, 正转, dir = 2, 反转
void LgMotorMakeStartCmd( int devidx, int dir );
void LgMotorMakeStopCmd( int devidx );
void LgMotorMakeRstErrorCmd( int devidx );
void LgMotorMakeFreqCmd( int devidx, int freq );

// 检查电机状态,0,停止,1,正转,2,反转
u_char	LgCheckMotorStatus( int devidx );

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -