ESP8266模组SDK开发之Station和AP连接

WiFi是由无线接入点AP(Access Point) 、站点(Station)等组成的无线网络。

  • STA:Station(站点),每个连接到无线网络中的终端
  • AP:Access Point(接入点),无线网络的创建者,是网络的中心节点


下面将介绍如何使用ESP8266 SDK开发WiFi的Station和AP连接

1. Station连接

WiFi Station入网流程如下示:

#mermaid-svg-ZqZzwPJOyf1W6sg7 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .label text{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .node rect,#mermaid-svg-ZqZzwPJOyf1W6sg7 .node circle,#mermaid-svg-ZqZzwPJOyf1W6sg7 .node ellipse,#mermaid-svg-ZqZzwPJOyf1W6sg7 .node polygon,#mermaid-svg-ZqZzwPJOyf1W6sg7 .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .node .label{text-align:center;fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .node.clickable{cursor:pointer}#mermaid-svg-ZqZzwPJOyf1W6sg7 .arrowheadPath{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .flowchart-link{stroke:#333;fill:none}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edgeLabel rect{opacity:0.9}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edgeLabel span{color:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .cluster text{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-ZqZzwPJOyf1W6sg7 .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ZqZzwPJOyf1W6sg7 text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-ZqZzwPJOyf1W6sg7 .actor-line{stroke:grey}#mermaid-svg-ZqZzwPJOyf1W6sg7 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .sequenceNumber{fill:#fff}#mermaid-svg-ZqZzwPJOyf1W6sg7 #sequencenumber{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 #crosshead path{fill:#333;stroke:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .messageText{fill:#333;stroke:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-ZqZzwPJOyf1W6sg7 .labelText,#mermaid-svg-ZqZzwPJOyf1W6sg7 .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-ZqZzwPJOyf1W6sg7 .loopText,#mermaid-svg-ZqZzwPJOyf1W6sg7 .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-ZqZzwPJOyf1W6sg7 .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-ZqZzwPJOyf1W6sg7 .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ZqZzwPJOyf1W6sg7 .noteText,#mermaid-svg-ZqZzwPJOyf1W6sg7 .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-ZqZzwPJOyf1W6sg7 .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-ZqZzwPJOyf1W6sg7 .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-ZqZzwPJOyf1W6sg7 .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-ZqZzwPJOyf1W6sg7 .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .section{stroke:none;opacity:0.2}#mermaid-svg-ZqZzwPJOyf1W6sg7 .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .section2{fill:#fff400}#mermaid-svg-ZqZzwPJOyf1W6sg7 .section1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .section3{fill:#fff;opacity:0.2}#mermaid-svg-ZqZzwPJOyf1W6sg7 .sectionTitle0{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .sectionTitle1{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .sectionTitle2{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .sectionTitle3{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-ZqZzwPJOyf1W6sg7 .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .grid path{stroke-width:0}#mermaid-svg-ZqZzwPJOyf1W6sg7 .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .task{stroke-width:2}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskText:not([font-size]){font-size:11px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .task.clickable{cursor:pointer}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskText0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskText1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskText2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskText3{fill:#fff}#mermaid-svg-ZqZzwPJOyf1W6sg7 .task0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .task1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .task2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutside0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutside2{fill:#000}#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutside1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .taskTextOutside3{fill:#000}#mermaid-svg-ZqZzwPJOyf1W6sg7 .active0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .active1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .active2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeText0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeText1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeText2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeText3{fill:#000 !important}#mermaid-svg-ZqZzwPJOyf1W6sg7 .done0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .done1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .done2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneText0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneText1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneText2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneText3{fill:#000 !important}#mermaid-svg-ZqZzwPJOyf1W6sg7 .crit0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .crit1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .crit2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCrit0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCrit1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCrit2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCrit0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCrit1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCrit2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-ZqZzwPJOyf1W6sg7 .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .milestoneText{font-style:italic}#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCritText0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCritText1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCritText2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .doneCritText3{fill:#000 !important}#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCritText0,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCritText1,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCritText2,#mermaid-svg-ZqZzwPJOyf1W6sg7 .activeCritText3{fill:#000 !important}#mermaid-svg-ZqZzwPJOyf1W6sg7 .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.classGroup text .title{font-weight:bolder}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.clickable{cursor:pointer}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-ZqZzwPJOyf1W6sg7 .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ZqZzwPJOyf1W6sg7 .dashed-line{stroke-dasharray:3}#mermaid-svg-ZqZzwPJOyf1W6sg7 #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 .commit-id,#mermaid-svg-ZqZzwPJOyf1W6sg7 .commit-msg,#mermaid-svg-ZqZzwPJOyf1W6sg7 .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-ZqZzwPJOyf1W6sg7 g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-ZqZzwPJOyf1W6sg7 .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-ZqZzwPJOyf1W6sg7 .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-ZqZzwPJOyf1W6sg7 .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edgeLabel text{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-ZqZzwPJOyf1W6sg7 .node circle.state-start{fill:black;stroke:black}#mermaid-svg-ZqZzwPJOyf1W6sg7 .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-ZqZzwPJOyf1W6sg7 #statediagram-barbEnd{fill:#9370db}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-state .divider{stroke:#9370db}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-ZqZzwPJOyf1W6sg7 .note-edge{stroke-dasharray:5}#mermaid-svg-ZqZzwPJOyf1W6sg7 .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-ZqZzwPJOyf1W6sg7 .error-icon{fill:#522}#mermaid-svg-ZqZzwPJOyf1W6sg7 .error-text{fill:#522;stroke:#522}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edge-thickness-normal{stroke-width:2px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-ZqZzwPJOyf1W6sg7 .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-ZqZzwPJOyf1W6sg7 .marker{fill:#333}#mermaid-svg-ZqZzwPJOyf1W6sg7 .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-ZqZzwPJOyf1W6sg7 {color: rgba(0, 0, 0, 0.75);font: ;}

配置WiFi为Station
动态内存分配配置参数结构体
赋值SSID和PSD
设置参数到寄存器
释放内存
开启WiFi连接

实验步骤如下:

–> 在ESP8266_RTOS_SDK目录下新建station文件夹,把LED灯实验中的led目录下所有文件拷贝到该文件夹中

–> 使用Source Insight编辑器,编辑和浏览代码;新建工程,并将station和include文件夹下的文件添加到工程中;在led灯程序基础上,在user_main.c文件中的user_init()函数下添加如下代码

user_init(void)
{printf("SDK version:%s\n", system_get_sdk_version());Led_init();wifi_set_opmode(STATION_MODE);   //配置WiFi为Station模式    struct station_config *config = (struct station_config *)zalloc(sizeof(struct station_config));  //动态的分配内存空间    sprintf(config->ssid,SSID);    sprintf(config->password,PASSWORD);         wifi_station_set_config(config);    //配置设置到寄存器里面    free(config);   //释放动态分配的内存     wifi_station_set_auto_connect(TRUE);    //启动wifi的一键连接 xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

–> 回到ESP8266编译器中,在station文件夹下,运行gen_misc.sh文件,依次确认配置(Y/1/2/3/4),编译完成

–> 烧写bin文件到ESP8266后,打开串口助手,模组复位后,串口输出相关信息后,模块显示连接到无线网络中,并获取到路由分配的IP

2. AP连接

WiFi AP入网流程如下示:

#mermaid-svg-sjCeOczyMZmlfJ5Y .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .label text{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .node rect,#mermaid-svg-sjCeOczyMZmlfJ5Y .node circle,#mermaid-svg-sjCeOczyMZmlfJ5Y .node ellipse,#mermaid-svg-sjCeOczyMZmlfJ5Y .node polygon,#mermaid-svg-sjCeOczyMZmlfJ5Y .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-sjCeOczyMZmlfJ5Y .node .label{text-align:center;fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .node.clickable{cursor:pointer}#mermaid-svg-sjCeOczyMZmlfJ5Y .arrowheadPath{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-sjCeOczyMZmlfJ5Y .flowchart-link{stroke:#333;fill:none}#mermaid-svg-sjCeOczyMZmlfJ5Y .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-sjCeOczyMZmlfJ5Y .edgeLabel rect{opacity:0.9}#mermaid-svg-sjCeOczyMZmlfJ5Y .edgeLabel span{color:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-sjCeOczyMZmlfJ5Y .cluster text{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-sjCeOczyMZmlfJ5Y .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-sjCeOczyMZmlfJ5Y text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-sjCeOczyMZmlfJ5Y .actor-line{stroke:grey}#mermaid-svg-sjCeOczyMZmlfJ5Y .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .sequenceNumber{fill:#fff}#mermaid-svg-sjCeOczyMZmlfJ5Y #sequencenumber{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y #crosshead path{fill:#333;stroke:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .messageText{fill:#333;stroke:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-sjCeOczyMZmlfJ5Y .labelText,#mermaid-svg-sjCeOczyMZmlfJ5Y .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-sjCeOczyMZmlfJ5Y .loopText,#mermaid-svg-sjCeOczyMZmlfJ5Y .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-sjCeOczyMZmlfJ5Y .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-sjCeOczyMZmlfJ5Y .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-sjCeOczyMZmlfJ5Y .noteText,#mermaid-svg-sjCeOczyMZmlfJ5Y .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-sjCeOczyMZmlfJ5Y .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-sjCeOczyMZmlfJ5Y .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-sjCeOczyMZmlfJ5Y .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-sjCeOczyMZmlfJ5Y .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .section{stroke:none;opacity:0.2}#mermaid-svg-sjCeOczyMZmlfJ5Y .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-sjCeOczyMZmlfJ5Y .section2{fill:#fff400}#mermaid-svg-sjCeOczyMZmlfJ5Y .section1,#mermaid-svg-sjCeOczyMZmlfJ5Y .section3{fill:#fff;opacity:0.2}#mermaid-svg-sjCeOczyMZmlfJ5Y .sectionTitle0{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .sectionTitle1{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .sectionTitle2{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .sectionTitle3{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-sjCeOczyMZmlfJ5Y .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .grid path{stroke-width:0}#mermaid-svg-sjCeOczyMZmlfJ5Y .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-sjCeOczyMZmlfJ5Y .task{stroke-width:2}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskText:not([font-size]){font-size:11px}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-sjCeOczyMZmlfJ5Y .task.clickable{cursor:pointer}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskText0,#mermaid-svg-sjCeOczyMZmlfJ5Y .taskText1,#mermaid-svg-sjCeOczyMZmlfJ5Y .taskText2,#mermaid-svg-sjCeOczyMZmlfJ5Y .taskText3{fill:#fff}#mermaid-svg-sjCeOczyMZmlfJ5Y .task0,#mermaid-svg-sjCeOczyMZmlfJ5Y .task1,#mermaid-svg-sjCeOczyMZmlfJ5Y .task2,#mermaid-svg-sjCeOczyMZmlfJ5Y .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutside0,#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutside2{fill:#000}#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutside1,#mermaid-svg-sjCeOczyMZmlfJ5Y .taskTextOutside3{fill:#000}#mermaid-svg-sjCeOczyMZmlfJ5Y .active0,#mermaid-svg-sjCeOczyMZmlfJ5Y .active1,#mermaid-svg-sjCeOczyMZmlfJ5Y .active2,#mermaid-svg-sjCeOczyMZmlfJ5Y .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-sjCeOczyMZmlfJ5Y .activeText0,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeText1,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeText2,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeText3{fill:#000 !important}#mermaid-svg-sjCeOczyMZmlfJ5Y .done0,#mermaid-svg-sjCeOczyMZmlfJ5Y .done1,#mermaid-svg-sjCeOczyMZmlfJ5Y .done2,#mermaid-svg-sjCeOczyMZmlfJ5Y .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-sjCeOczyMZmlfJ5Y .doneText0,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneText1,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneText2,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneText3{fill:#000 !important}#mermaid-svg-sjCeOczyMZmlfJ5Y .crit0,#mermaid-svg-sjCeOczyMZmlfJ5Y .crit1,#mermaid-svg-sjCeOczyMZmlfJ5Y .crit2,#mermaid-svg-sjCeOczyMZmlfJ5Y .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCrit0,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCrit1,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCrit2,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCrit0,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCrit1,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCrit2,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-sjCeOczyMZmlfJ5Y .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-sjCeOczyMZmlfJ5Y .milestoneText{font-style:italic}#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCritText0,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCritText1,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCritText2,#mermaid-svg-sjCeOczyMZmlfJ5Y .doneCritText3{fill:#000 !important}#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCritText0,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCritText1,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCritText2,#mermaid-svg-sjCeOczyMZmlfJ5Y .activeCritText3{fill:#000 !important}#mermaid-svg-sjCeOczyMZmlfJ5Y .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-sjCeOczyMZmlfJ5Y g.classGroup text .title{font-weight:bolder}#mermaid-svg-sjCeOczyMZmlfJ5Y g.clickable{cursor:pointer}#mermaid-svg-sjCeOczyMZmlfJ5Y g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-sjCeOczyMZmlfJ5Y g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-sjCeOczyMZmlfJ5Y .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-sjCeOczyMZmlfJ5Y .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-sjCeOczyMZmlfJ5Y .dashed-line{stroke-dasharray:3}#mermaid-svg-sjCeOczyMZmlfJ5Y #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y .commit-id,#mermaid-svg-sjCeOczyMZmlfJ5Y .commit-msg,#mermaid-svg-sjCeOczyMZmlfJ5Y .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-sjCeOczyMZmlfJ5Y g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-sjCeOczyMZmlfJ5Y g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-sjCeOczyMZmlfJ5Y g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-sjCeOczyMZmlfJ5Y .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-sjCeOczyMZmlfJ5Y .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-sjCeOczyMZmlfJ5Y .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-sjCeOczyMZmlfJ5Y .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-sjCeOczyMZmlfJ5Y .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-sjCeOczyMZmlfJ5Y .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-sjCeOczyMZmlfJ5Y .edgeLabel text{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sjCeOczyMZmlfJ5Y .node circle.state-start{fill:black;stroke:black}#mermaid-svg-sjCeOczyMZmlfJ5Y .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-sjCeOczyMZmlfJ5Y #statediagram-barbEnd{fill:#9370db}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-state .divider{stroke:#9370db}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-sjCeOczyMZmlfJ5Y .note-edge{stroke-dasharray:5}#mermaid-svg-sjCeOczyMZmlfJ5Y .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-sjCeOczyMZmlfJ5Y .error-icon{fill:#522}#mermaid-svg-sjCeOczyMZmlfJ5Y .error-text{fill:#522;stroke:#522}#mermaid-svg-sjCeOczyMZmlfJ5Y .edge-thickness-normal{stroke-width:2px}#mermaid-svg-sjCeOczyMZmlfJ5Y .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-sjCeOczyMZmlfJ5Y .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-sjCeOczyMZmlfJ5Y .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-sjCeOczyMZmlfJ5Y .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-sjCeOczyMZmlfJ5Y .marker{fill:#333}#mermaid-svg-sjCeOczyMZmlfJ5Y .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-sjCeOczyMZmlfJ5Y {color: rgba(0, 0, 0, 0.75);font: ;}

配置WiFi为AP
动态内存分配配置参数结构体
获取当前参数到内存
赋值SSID和PSD
配置加密模式
配置SSID长度为0
配置最大站点连接数为5
设置参数到寄存器

实验步骤如下:

–> 在ESP8266_RTOS_SDK目录下新建ap文件夹,把LED灯实验中的led目录下所有文件拷贝到该文件夹中

–> 使用Source Insight编辑器,编辑和浏览代码;新建工程,并将ap和include文件夹下的文件添加到工程中;在led灯程序基础上,在user_main.c文件中的user_init()函数下添加如下代码

user_init(void)
{printf("SDK version:%s\n", system_get_sdk_version());    Led_init();    wifi_set_opmode(SOFTAP_MODE);    //设置为AP模式    struct softap_config *config = (struct softap_config *)zalloc(sizeof(struct softap_config));    wifi_softap_get_config(config);       //获取当前参数    sprintf(config->ssid,SSID);          //传入自己定义的网络名称    sprintf(config->password,PASSWORD); //传入自己定义的网络密码    config->authmode = AUTH_WPA_WPA2_PSK;//授权加密方式    config->ssid_len = 0;             //设置网络名称长度为0,表示网络名称字符串中遇到'\0'时结shu   config->max_connection = 4;           //设置最大连接数     wifi_softap_set_config(config);       //设置到寄存器    free(config);                   //释放动态存储      xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

–> 回到ESP8266编译器中,在ap文件夹下,运行gen_misc.sh文件,依次确认配置(Y/1/2/3/4),编译完成

–> 烧写bin文件到ESP8266后,打开串口助手,模组复位后,串口输出相关信息,用手机连接AP,获取到AP分配的地址

WiFi开发|ESP8266模组SDK开发之Station和AP连接相关推荐

  1. WiFi开发|ESP8266模组SDK开发之SNTP协议

    ESP8266模组SDK开发之SNTP协议 1. NTP和SNTP NTP 是网络时间协议(Network Time Protocol),是用来同步网络设备(如计算机.手机)的时间的协议 SNTP由N ...

  2. WiFi开发|ESP8266模组SDK开发之FOTA

    ESP8266模组SDK开发之远程固件升级 1. FOTA FOTA(Firmware Over-The-Air)移动终端的空中下载软件升级,指通过云端升级技术,为具有连网功能的设备:例如手机.平板电 ...

  3. WiFi开发|ESP8266模组SDK开发项目之智能开关

    智能开关项目 1. 智能开关 智能开关由WiFi模组和继电器组成:本实例中利用ESP8266模组作为一个TCP Server,通过STA模式将ESP8266连接到路由器中:PC或者手机连接到相同的路由 ...

  4. WiFi开发|ESP8266模组AT指令开发二

    ESP8266模组AT指令开发二 1. 基于STM32的AT指令开发 ESP8266可以使用官方提供的SDK来进行开发,也可以直接利用官方提供的固件直接使用AT指令配置模块使用.在ESP8266模组A ...

  5. 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

    实现的功能: l  APP控制月球灯 l  本地月球灯控制 l  APP控制"大白"颜色,实现各种颜色变身 l  门状态传感器状态APP显示 l  网络状态指示灯,连接服务器长亮, ...

  6. 涂鸦WIFI模组方案(模组 SDK)

    摘自:涂鸦智能模组 SDK 开发系列课程 地址:https://www.bilibili.com/video/BV1Kq4y1o728?p=1 摘自:涂鸦智能模组SDK开发系列课程--Wi-Fi接入 ...

  7. 涂鸦智能模组SDK开发系列课程——涂鸦IoT平台介绍(二)

    使用涂鸦Wi-Fi模组和涂鸦Wi-Fi&Bluetooth LE双模模组进行产品开发主要有三种不同的方式进行开发: 零代码开发:涂鸦提供可视化功能配置界面,无需任何编程经验,只需在线配置好产品 ...

  8. 智能温湿度计原型设计-BLE 模组 SDK 开发

    智能温湿度计原型设计-BLE 模组 SDK 开发 概况 温湿度传感器是一款常见的智能家居设备,通过温湿度传感器采集温度和湿度,用户可以通过 App 以温湿度为触发条件设置智能场景控制家电. 设想一下, ...

  9. ESP32串口转WiFi双天线ESP32-S模组

    ▌ESP32小模块 1.外置管脚功能图 安信可原厂直销 WiFi+蓝牙模块ESP32串口转WiFi双天线ESP32-S模组 2.自动下载电路 参考下载电路分析 ESP8266专题-ESP8266自动下 ...

最新文章

  1. 第3周 实践项目2 建设”顺序表“算法库(可参考为模板)
  2. OPPORTUNITIES_GET_ENTITY not implemented in data provider class
  3. win10删除开机密码_win10系统,电脑密码和微软密码都忘记了,怎么办? Day22
  4. MyEclipse 10, 2013, 2014 破解、注册码
  5. sql oracle 递归查询语句,深入sql oracle递归查询
  6. redis教程(七)之redis List
  7. python数据类型、if判断语句
  8. mac git 拉代码太慢或是拉不下来,可能是这个原因
  9. 创业 7 年最痛教训
  10. getParameterValues中文乱码
  11. 实例理解月末结账任务中,重估未结外币余额的原理
  12. 广东未来科技:书写立体显示事业传奇的行业独角兽
  13. 有关魅族手机遇到TextView显示异常
  14. 苹果 IOS 早期版本 NDEF的读写问题 C#
  15. 带宽储备能力超100 Tbps,华为云CDN保障平台从容应对流量高峰
  16. N1盒子Armbian折腾记
  17. 字节提出TRT-ViT:面向TensorRT的视觉Transformer,加速显著!
  18. prism InvokeCommandAction
  19. word python搜题_大学mooc2020年用Python玩转数据答案搜题公众号
  20. android红外模块,基于Android平台的智能家居红外控制系统的研究

热门文章

  1. Solaris的版本命名
  2. 获取已经登录的docker镜像仓库地址、用户名、密码
  3. 股票量化模型公式操作说明
  4. 小白学逆向——入门基本概念
  5. 城市大脑入选国家新一代人工智能开放创新平台,阿里iDST副院长华先胜技术解读...
  6. Android修行手册-玩转TextView,想不到有这么多属性
  7. 超帅的爬取鹿晗微博(适合基础学者)
  8. java国际化英语_Java国际化(i18n)UTC
  9. Python的初步认知与安装步骤 (小白必备)
  10. 有滞后单容对象MATLAB仿真,自动化生产线实训实验报告