- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hlk-wifi-m03串口转wifi模块编程指南
HLK-WIFI-M03串口转WIFI模块
(email:david@hlktech.cn 0755 tel QQ:370925732)
例程代码
本节主要针对命令模式下对WiFi模块的控制给出上位机的示例代码。如果模块运行在自动模式,将不需要这部分内容。
例程代码说明
本例程代码是基于C语言编写的例程代码,可以将其移植到其他的系统中。本例程代码主要是对WiFi模块的操作给出一个操作的过程示例。在移植时需要根据自己系统的状况进行相应的修改。
命令模式下Wifi网卡的操作流程
通常在命令行模式下对Wifi模块的操作的流程如下图所示。在使用Wifi模块时,可以根据系统的情况决定是否进行命令行的操作。
图6-3 Wifi网卡操作流程
示例代码主要的数据结构
typedef struct _TATCP_COMMAND{
char *CmdName;
INT Flag;
char * Cmdbuf;
INT *Cmdbuflen;
} TATCP_CMD; At命令结构体
说明:CmdName:At指令命令代号。
Flag:该命令是否有数据返回标志。
Cmdbuf:该命令所含命令内容
Cmdbuiflen:命令长度
串口AT指令发送标志
unsigned char AtCmdSending; 说明:该标志说明有一条At指令正在发送或等待回复。不能继续下发另外,一条指令。如果用户系统使用基于操作系统的编程,可以使用信号量的机制实现。
串口等待AT指令回复标志
unsigned char ReciveAtCmdrep; 说明:该标志代表等待某条AT指令的回复,如果使用操作系统的话,可以使用
串口数据操作
在串口发送每条CMD后,需要等待该命令的回复。如果本条命令没有回复,需要增加超时,将强制退出该命令。应当保证At发送命令时,串口只有一条在等待回复的At指令。
串口发送指令示例
int AtCmdSend(TATCP_CMD * AtCmd)
{
unsigned char AtCmdbuf[512];
int ret=0;
////
////AtCmd_Check(); ///AtCmdCheck
/////
strcpy(AtCmdbuf, AT+);
strcat(AtCmdbuf, AtCmd-Cmdbuf);
ReciveAtCmdrep=0;
ComSendstr(AtCmdbuf);
AtcmdTimerId=StartTimer( MSG_CMD_TIMEOUT_CFM,TIMER_ATCMD_TIMEOUT);
while(ReciveAtCmdrep!=1)
{
if(Atcmdtimeout==1)
{
ret=-1;
break;
}
}
StopTimer(AtcmdTimerId);
return ret;
} 说明:本示例代码中需要系统另外提供超时处理的函数。在串口发送At Cmd后启动定时器,在给定的时间内将Atcmdtimeout置为1。以便实现Wifi模块超时后的处理。
串口接收AT指令回复示例
用于串口接收Wifi模块回传的响应信息,在上位机发送完成每条AT指令后需要等待WiFi模块响应或者超时(请将超时时间设置大于500ms)。本例子以51体系下串口中断为例。
1、串口接收中断函数:
void COMM_INT() interrupt 4 using 3
{
unsigned char cBuf;
if(RI)// 接收数据
{
RI = 0;
cBuf = SBUF;
ProcessUARTData(cBuf);
}
else if (TI)
{
TI = 0;
if(iSendCounter iUartSendLen)
SBUF = cpSendBufPtr[iSendCounter++];
}
} 说明:ProcessUARTData(cBuf)用来处理串口接收到的数据。
2、串口接收到数据处理函数,主要数据结构描述:
#define WIFIBUFLEN 1024
typedef struct WiFiRecBuffer
{
unsigned char gcATReceData[WIFIBUFLEN]; //
unsigned int gcATReceCount; ///接收字节长度
您可能关注的文档
- altium designer 官方教程.pdf
- c3光纤直放站远端机操作维护手册.doc
- c4.5算法的过程与实际应用分析.doc
- canon f-789sga科学计算器使用说明书.pdf
- ccna04-trunk工作原理.pptx
- chapter 1-计算机组成原理概述.ppt
- chapter2管理学的产生和形成.pdf
- cmmi简单介绍文档.pdf
- day4-02web应用漏洞扫描工具介绍.ppt
- ddr memory-基本工作原理分析.ppt
- 2025年mRNA疫苗技术研发进展与临床应用案例分析报告.docx
- 2025年河北省唐山市滦县高三下学期数学基础题、中档题型强化训练.docx
- 云游戏技术驱动游戏产业升级报告:2025年市场趋势与战略布局.docx
- 2025年河北省保定市新市区高三英才班下学期数学限时训练试题.docx
- 全国跨境电子商务模拟题与答案.docx
- 2025年河北省保定市新市区高三二模数学试卷及答案.docx
- 2025年河北省保定市新市区高三下学期第八周周测数学试卷.docx
- 云计算架构优化与成本控制关键技术创新2025年政策解读报告.docx
- 电子商务模拟习题含答案.docx
- 建筑起重信号司索工试题与参考答案.docx
文档评论(0)