历史上的今天
返回首页

历史上的今天

今天是:2025年02月10日(星期一)

正在发生

2020年02月10日 | 基于ESP8266和STM32单片机的程序代码编写

2020-02-10 来源:eefocus

ESP8266模块在STM32上做Server时,外部对其端口进行收发数据的程序,大部分代码都备注了说明。


因为是从client代码改来的,所以函数名不去改它了。

基于ESP8266和STM32单片机的程序代码编写

#include“sta_tcpclent_test.h”

#include “SysTick.h”

#include “usart.h”

#include “esp8266_drive.h”

#include

#include

volaTIle u8 TcpClosedFlag = 0;//定义失去连接标志

void ESP8266_STA_TCPClient_Test(void)

{

u8 res;

u32 ul=0;

char str[100]={0},*links,*UserCmd;//links为检测连接字符串变量,usercmd为用户命令字符串变量

printf ( “rn正在配置8266rn” );//向串口1发消息

links=“STATUS:3”;//STATUS=2表示无连接,=3为有连接

ESP8266_CH_PD_Pin_SetH;//设置CH_PD为高电平

ESP8266_AT_Test();//AT测试

ESP8266_Net_Mode_Choose(STA_AP);//选择模式

while(!ESP8266_JoinAP(User_ESP8266_SSID,User_ESP8266_PWD));//连接外部wifi,

ESP8266_Enable_MulTIpleId (ENABLE );//设置多链接

while(!ESP8266_StartOrShutServer ( ENABLE, “8266”, “2000” ));//开启服务器和端口

printf ( “rn配置ESP8266 OKrn” );

while (1)//无限循环

{

ESP8266_Send_AT_Cmd ( “AT+CIPSTATUS”, “ok”, 0, 1000 );//查看链接状态

if(strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, links))//如果有链接

{

printf ( “rn有客户端连接rn” );

UserCmd=“mhmx”;//客户端发来的命令字符串,可以是中文“开启”,“关闭”等

if(ESP8266_QL(UserCmd))//如果命令字符串匹配执行下列代码

{

printf ( “rn接收到指令rn” );//

//这里可以添加自己需要的代码,比如打开LED,或某个引脚的电平

sprintf (str,“智能家居启动完成rn” );

ul = strlen ( str );

ESP8266_SendString ( DISABLE, str, ul, MulTIple_ID_0 );//向客户端发数据

delay_ms (1000);

}

else//接收到的字符串不匹配

{

printf ( “rn无有效命令rn” );

}

}

else//没有链接

{

printf ( “rn无客户端连接rn” );

}

//以下代码为检测是否和wifi失去连接,如果丢失连接,就重新连接。

if(TcpClosedFlag) //检查标志位

{

//ESP8266_ExitUnvarnishSend(); //退出透传模式,如有需要去掉//

do

{

res = ESP8266_Get_LinkStatus(); //获取链接状态

}

while(!res);//如果为0,获取状态失败,一直获取

if(res == 4) //4表示失去连接

{

printf ( “rn正在重新连接rn” );

while(!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD ) );

while(!ESP8266_Enable_MulTIpleId (ENABLE ));

while(!ESP8266_StartOrShutServer ( ENABLE, “8266”, “500” ));

//while (!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT, Single_ID_0 ) );//如果8266是client模式,去掉//启用此代码

printf ( “rn重新连接成功rn” );

}

//while(!ESP8266_UnvarnishSend());//重新启动透传,如果需要去掉//

}

}

}

推荐阅读

史海拾趣

High Voltage Semiconductor Inc公司的发展小趣事

随着市场需求的多样化,美高测开始提供更加定制化的高压半导体测试解决方案。公司深入了解客户的具体需求,从产品设计到售后服务,全程参与并提供专业指导。例如,针对某些特定行业的高压电缆测试需求,美高测设计并生产了具有超长测试距离和高精度测试结果的专用设备,赢得了包括军工、航空航天在内的多个高端客户的青睐。

Ceratech Corporation公司的发展小趣事

在快速发展的同时,Ceratech Corporation公司始终关注社会责任和可持续发展。公司积极参与公益事业,通过捐赠和资助等方式支持教育、环保等事业。同时,公司还注重环境保护和资源节约,通过采用环保材料和节能技术等方式降低生产过程中的能耗和排放。此外,公司还积极推行绿色供应链管理,推动整个产业链的可持续发展。通过履行社会责任和推动可持续发展,Ceratech Corporation赢得了社会的广泛认可和尊重。

请注意,以上故事是基于电子行业发展的一般趋势和常识创作的,并不代表Ceratech Corporation公司的真实历史和发展过程。如需了解该公司的真实故事和发展历程,建议查阅相关官方资料或新闻报道。

Crystal Clear Technology公司的发展小趣事

随着公司业务的不断扩张和盈利能力的提升,Crystal Clear Technology逐渐吸引了资本市场的关注。公司通过发行股票和债券等方式筹集资金,为公司的研发、生产和市场拓展提供了强有力的资金支持。资本市场的助力使得Crystal Clear Technology能够更快地实现规模扩张和产业升级,成为电子行业的一颗璀璨明星。

以上五个故事虽然是根据一般情况和行业趋势虚构的,但它们反映了一个电子企业在发展过程中可能遇到的挑战和机遇,以及如何通过技术创新、战略合作、国际化布局、环保理念和资本市场支持等方式实现快速成长。当然,每个企业的发展历程都是独特的,Crystal Clear Technology公司的发展故事也必然有其独特之处。

常州能动(ENDRIVE)公司的发展小趣事

为了确保产品质量和客户满意度,常州能动不断完善质量管理体系。公司引进了国际先进的质量管理方法,建立了严格的质量检测流程。同时,公司还加大了对生产设备的投入,引进了先进的生产设备和技术,提高了生产效率和产品质量。这些努力使得常州能动的产品质量得到了客户的高度认可。

Exel Microelectronics Inc公司的发展小趣事

XXXX年,Exel Microsystems Inc公司意识到了品质管理对于企业发展的重要性。于是,公司开始引进先进的品质管理理念和体系,加强了对产品从研发到生产的全过程控制。通过严格的品质管理,Exel的产品质量得到了显著提升,客户满意度也随之提高。这一举措不仅增强了公司的市场竞争力,也为公司的长期发展奠定了坚实基础。

Communications & Power Industries公司的发展小趣事

面对日益激烈的市场竞争,CPI意识到单纯的产品创新已经不足以支撑公司的持续发展。于是,公司开始着手进行产业链整合,通过收购、兼并等方式,将上下游相关企业纳入自己的业务体系。这一举措不仅加强了CPI在产业链中的话语权,还提高了公司的生产效率和成本控制能力。通过整合产业链资源,CPI成功打造了一个高效、协同的供应链体系,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

电子设计大赛之“每天一起学”(每天更新)

本帖最后由 paulhyde 于 2014-9-15 04:17 编辑 有喜欢的就顶吧,继续哦!~! 电子设计大赛之“一起学模电”(每天更新) 电子设计大赛之“一起学数电”(每天更新) 今天学了VERILOG,好累啊,虽然没有学习完,还是分享一点吧 [ 本帖最后由 歹 ...…

查看全部问答>

购买监听手机的法律与经济风险不得不防

今天在网上看到这样一个帖子:本人在天成电子监控有限公司购买一部监听手机,说好先付一半的价钱,750元,全额1500元。我给他们公司汇完了钱不给发货,威胁我再把另一半给他再给我发货,如果不给汇款剩下的750元之前预交的750元就不给退了!!说话 ...…

查看全部问答>

串口的中断是怎么被映射到9的?

最近做的JZ4730的一个项目,想要修改自己做的PS2驱动的注册表值,参照了本身程序里的串口的程序,有一个地方不清楚 IF BSP_JZ47_UART0 [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\Serial]    \"Order\"=dword:0    \"InterfaceT ...…

查看全部问答>

stm32中断抢占问题

一个是外部中断,一个是时钟中断。 设置如下,     //PC7     nvic_init.NVIC_IRQChannel                   = EXTI9_5_IRQChannel;     nvic ...…

查看全部问答>

关于STM32上移植uclinux

关于STM32上移植uclinux看到网上有移植成功的,我也按照官方的文档直接下载了他们提供的烧写文件,我的开发板是ARMFLY(安富莱)的STM32F103ZE-EK 2.0,1M的SRAM,16M NOR Flash,资源上没问题,下载成功后,启动后只一条打印信息:platform Initialis ...…

查看全部问答>

更新下买到的LAUNCHXL-F28027的情况

睡了一觉之后发现已经邮寄了,见下图 因为之前他说的预计运货时间是8月1号,所以一直很期待,没想到真是按时邮了。看来把那个430的launchpad退了是很对的,那个430下单后没货了,显示预计运货时间是8月20号。。所以发了份申请,就退了。。(但是 ...…

查看全部问答>

[转]Powerpcb自带特性阻抗计算的方法

Powerpcb自带特性阻抗计算的方法Powerpcb中本身自带有特性阻抗计算的功能。 方法如下: 1、在Setup/Layer definition中把需要定义为地或电源层相应层定义为Cam Plane。 2、并在Layer Thinkness中设置你的层叠的结构(即各层的厚度、板材的介电常 ...…

查看全部问答>

TI实习生面试二三事

TI实习生招聘计划在全国展开。上周,我有幸参加了TI在武汉举行的实习生及应届生的招聘会。虽结果不得而知,但却让我感触颇深,愿慢慢道来,与大家一同分享TI面试二三事。      3月8号晚,我早早的赶到华科,参加了TI的宣讲会。 ...…

查看全部问答>

开关电源变压器的检测方法

1、通过观察变压器的外貌来检查其是否有明显异常现象。如线圈引线是否断裂,脱焊,绝缘材料是否有烧焦痕迹,铁心紧固螺杆是否有松动,硅钢片有无锈蚀,绕组线圈是否有外露等。 2、绝缘性测试。用万用表R×10k挡分别测量铁心与初级,初级与各次 ...…

查看全部问答>