/********************************** (C) COPYRIGHT ******************************* * File Name : CH392CMD.H * Author : WCH * Version : V1.0 * Date : 2020/02/19 * Description : CH392芯片命令接口文件,常用子程序外部调用 *******************************************************************************/ #ifndef __CH392CMD_H__ #define __CH392CMD_H__ #include "stddef.h" void CH392CMDReset(void); /* 复位 */ void CH392CMDSleep(void); /* 睡眠 */ UINT8 CH392CMDGetVer(void); /* 获取芯片及固件版本号 */ UINT8 CH392CMDCheckExist(UINT8 testdata); /* 测试命令 */ void CH392CMDSetPHY(UINT8 phystat); /* 设置PHY状态 */ UINT8 CH392CMDGetPHYStatus(void); /* 获取PHY状态 */ UINT8 CH392CMDGetGlobIntStatus(void); /* 获取CH392全局中断状态 */ UINT8 CH392CMDInitCH392(void); /* 初始化CH392 */ void CH392CMDSetUartBaudRate(UINT32 baudrate); /* 设置波特率 */ UINT8 CH392GetCmdStatus(void); /* 获取命令执行状态 */ void CH392CMDSetIPAddr(UINT8 *ipaddr); /* 设置CH392的IP地址 */ void CH392CMDSetGWIPAddr(UINT8 *gwipaddr); /* 设置CH392的网关IP地址 */ void CH392CMDSetMASKAddr(UINT8 *maskaddr); /* 设置子网掩码 */ void CH392CMDSetMACAddr(UINT8 *amcaddr); /* 设置CH392的MAC地址 */ void CH392CMDGetMACAddr(UINT8 *amcaddr); /* 获取MAC地址 */ void CH392CMDSetMACFilt(UINT8 filtype,UINT32 table0,UINT32 table1); /* 设置CH392的MAC过滤 */ void CH392CMDGetUnreachIPPT(UINT8 *list); /* 获取不可达地址以及端口 */ void CH392CMDGetRemoteIPP(UINT8 sockindex,UINT8 *list); /* 获取远端IP和端口,一般在TCP Server下使用 */ void CH392SetSocketDesIP(UINT8 sockindex,UINT8 *ipaddr); /* 设置scoket n的目的IP地址 */ void CH392SetSocketProtType(UINT8 sockindex,UINT8 prottype); /* 设置socket n的协议类型 */ void CH392SetSocketDesPort(UINT8 sockindex,UINT16 desprot); /* 设置socket n的目的端口 */ void CH392SetSocketSourPort(UINT8 sockindex,UINT16 surprot); /* 设置socket n的源端口 */ void CH392SetSocketIPRAWProto(UINT8 sockindex,UINT8 prototype); /* 在IPRAW模式下,设置socket n的IP包协议字段 */ void CH392SetRecvThresLen(UINT8 sockindex,UINT16 len); /* 设置socket n的接收中断阀值 */ void CH392SendData(UINT8 sockindex,UINT8 *databuf,UINT16 len); /* 向socket n的发送缓冲区写数据 */ UINT16 CH392GetRecvLength(UINT8 sockindex); /* 获取socket n的接收长度 */ void CH392ClearRecvBuf(UINT8 sockindex); /* 清除socket n的接收缓冲区 */ void CH392GetRecvData(UINT8 sockindex,UINT16 len,UINT8 *pbuf); /* 获取接收数据 */ void CH392CMDSetRetryCount(UINT8 count); /* 设置最大重试次数 */ void CH392CMDSetRetryPeriod(UINT16 period); /* 设置最大重试周期 单位 毫秒*/ void CH392CMDGetSocketStatus(UINT8 sockindex,UINT8 *status) ; /* 获取socket n的状态 */ UINT8 CH392OpenSocket(UINT8 sockindex); /* 打开socket n*/ UINT8 CH392CloseSocket(UINT8 sockindex); /* 关闭socket n*/ UINT8 CH392TCPConnect(UINT8 sockindex); /* TCP连接 */ UINT8 CH392TCPListen(UINT8 sockindex); /* TCP监听 */ UINT8 CH392TCPDisconnect(UINT8 sockindex); /* TCP断开连接 */ UINT8 CH392GetSocketInt(UINT8 sockindex); /* 获取socket n的中断状态 */ UINT8 CH392CRCRet6Bit(UINT8 *mac_addr); /* 多播地址CRC32,用于HASH过滤 */ /*Function Count = 36 */ void CH392GetIPInf(UINT8 *addr); UINT8 CH392DHCPEnable(UINT8 flag); void CH392WriteGPIOAddr(UINT8 regadd,UINT8 regval); UINT8 CH392ReadGPIOAddr(UINT8 regadd); UINT8 CH392EEPROMErase(void); UINT8 CH392EEPROMWrite(UINT16 eepaddr,UINT8 *buf,UINT8 len); void CH392EEPROMRead(UINT16 eepaddr,UINT8 *buf,UINT8 len); void CH392SetTCPMss(UINT16 tcpmss); void CH392SetSocketRecvBuf(UINT8 sockindex,UINT8 startblk,UINT8 blknum); void CH392SetSocketSendBuf(UINT8 sockindex,UINT8 startblk,UINT8 blknum); void CH392UDPSendTo(UINT8 *buf,UINT32 len,UINT8 *ip,UINT16 port,UINT8 sockindex); void CH392SetStartPara(UINT32 mdata); UINT8 CH392CMDGetGlobIntStatus_ALL(void); void CH392SetKeepLive(UINT8 sockindex,UINT8 cmd); /* keepalive 使能 */ void CH392KeepLiveCNT(UINT8 cnt); /* keepalive 参数设置 */ void CH392KeepLiveIDLE(UINT32 idle); /* keepalive 参数设置 */ void CH392KeepLiveINTVL(UINT32 intvl); /* keepalive 参数设置 */ void CH392SetTTLNum(UINT8 sockindex,UINT8 TTLnum); /* TTL参数设置 */ void CH392EnablePing(UINT8 enable); /* PING 使能 */ #endif /**************************** endfile *************************************/