查看“︁Demo:wifi sta”︁的源代码
←
Demo:wifi sta
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
不允许您执行您所请求的操作。
您可以查看和复制此页面的源代码。
=== 基本介绍: === 该系列demo存放在SDK 的路径为:bouffalo_sdk/examples/wifi/sta 。 该系列代码需要将开发板作为STA节点连接到WiFi或者路由器后进行一些基本的通讯数据功能性测试。 以下该系列demo的基本功能说明。 === MQTT相关Demo说明: === ==== wifi_mqtt_pub: ==== 该demo将开发板作为mqtt中的publisher,向节点内发布主题信息。 要测试该节点需要以下前置: 1.建立一个mqtt服务器 2.使用mqttbox或者其他相关工具从服务器上订阅对应的主题。 3.可以向串口发送指令。 建议本地下载mosquito,在本地搭建一个mqtt服务器,或者使用emqX公用服务器。该案例的defult server是:`test.mosquitto.org:1883` 向串口发送指令连接WIFI并订阅:<syntaxhighlight lang="bash" line="1"> wifi_sta_connect your_wifi_id your_passwd mqtts_pub $local_ip 8883 #mqtt_pub 如果不带参数会默认发送到上述的公有服务器 #会得到以下输出: bouffalolab />mqtt_pub is ready to begin publishing the time. Press ENTER to publish the current time. Press CTRL-C to exit. mqtt_pub published : "{"hello mqtt by bl616/8 !"} Now time is 2023-06-16 00:00:00" mqtt_pub published : "{"hello mqtt by bl616/8 !"} Now time is 2023-06-16 00:00:03" mqtt_pub stop publish to test.mosquitto.org </syntaxhighlight>订阅方会受到当前时间的字符串。 ==== wifi_mqtt_sub: ==== 和上述一样,但是该案例是submiter ,也就是消息订阅方。 前置条件:同上。 同样向串口发送指令来验证:<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_sta_connect your_wifi_id your_pwd bouffalolab />mqtt_sub your_server <port> #得到输出 bouffalolab />mqtt_sub listening for '<theme>' messages. Press CTRL-C to exit. Received publish('<theme>'): {"hello mqtt"} Received publish('<theme>'): {"hello mqtt"} mqtt_sub disconnecting from xxx.your_server </syntaxhighlight> ==== MQTTS功能: ==== '''上述的两个Demo现已支持TLS加密功能''',该加密使用'''TLS1.2'''加密套件,未验证 CN name。 开启MQTT的选项在对应文件夹中的CmakeList中:<syntaxhighlight lang="makefile" line="1"> cmake_minimum_required(VERSION 3.15) include(proj.conf) find_package(bouffalo_sdk REQUIRED HINTS $ENV{BL_SDK_BASE}) # User sdk_add_compile_definitions(-DCONFIG_CLI_CMD_ENABLE) # sdk_add_compile_options(-DMQTT_USE_CUSTOM_SOCKET_HANDLE) # sdk_add_compile_definitions(-DMBEDTLS_PK_PARSE_C) sdk_add_compile_options(-DMQTT_USE_MBEDTLS) #注释该行则不启用TLS加密,否则加密。 target_sources(app PRIVATE wifi_mqtt_pub.c) sdk_add_include_directories(.) sdk_set_main_file(main.c) project(wifi_mqtt_publisher) </syntaxhighlight> ==== 其中的CA证书,密钥等具体为: ==== <syntaxhighlight lang="bash" line="1"> #ca.crt: -----BEGIN CERTIFICATE----- MIIDwzCCAqugAwIBAgIUT2Cy6wsGGycw6WvNoHot5I+GlTQwDQYJKoZIhvcNAQEL BQAwcTELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0Jl aWppbmcxDzANBgNVBAoMBk15IE9yZzEWMBQGA1UECwwNQ0EgRGVwYXJ0bWVudDEV MBMGA1UEAwwMTVFUVCBSb290IENBMB4XDTI1MDcxNzEwMzU1MVoXDTM1MDcxNTEw MzU1MVowcTELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcM B0JlaWppbmcxDzANBgNVBAoMBk15IE9yZzEWMBQGA1UECwwNQ0EgRGVwYXJ0bWVu dDEVMBMGA1UEAwwMTVFUVCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEAzMguxj26xEFb1N5u6slSgEp62eak+dqkmq6BoxVW48V2GO62caCt n7MZywknnKm1sFM9kOv/mdr4fjHF3ZhvZ4MCqu0EPy2crjROoV8ofsjMDoIp2PSh VZ7wmDC5zu7ndCMX85C/vv3Ikows5sMr/r6Ieh7lgoLeXTFDbGixLM3u1vB2I/OQ gepYnPVkUHmEWsRFtzwwBgbAkSlmf3UreCT/lDbcOsKGl3YY4PZtJjk3wwtJqLAE M/dNJdleU9ENwwelotScu4CGex+OaPNfn1EwLgwBrX2FByYyfpw+DUTnhdXsPbGM jly24NUcg7CavTJxow5ltuWLahN5oQZZ4wIDAQABo1MwUTAdBgNVHQ4EFgQUGIBW MZwM5z40nEZde/GSQxszsDEwHwYDVR0jBBgwFoAUGIBWMZwM5z40nEZde/GSQxsz sDEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEALp0qj9qWnc9l 9GWivdOHVSfIHWWuTUN7+2QXGEHZ7vyC6dPoMNvr0Wg35Wj3VLbmZm6vlIubQ0JW 3nt5Kru9Keh/BALAxFa6onRVdYahXWRzD1fjTMUfIpDjaRtFWE6luA3ztfj2ZtiL q665MZulKQLFhIQeAXNfR7hpxaiR+qu5YVYvWQN7gigjB787Y+JUk+h3rnlZ5vPX j/yf9BP2u9tK1VkF2Ir1c+Y0xcp0qomd25QOm0H/qwgEh5wnO3du8GrTS5WMlYq1 LJSLM7dmBKgvTPngAgewFiwNPyhtywM6Vdc/mrcNwqAcfmyV0U8oU/DReKbX4ed2 +zlke05LKA== -----END CERTIFICATE----- #ca.key: -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMyC7GPbrEQVvU 3m7qyVKASnrZ5qT52qSaroGjFVbjxXYY7rZxoK2fsxnLCSecqbWwUz2Q6/+Z2vh+ McXdmG9ngwKq7QQ/LZyuNE6hXyh+yMwOginY9KFVnvCYMLnO7ud0IxfzkL++/ciS jCzmwyv+voh6HuWCgt5dMUNsaLEsze7W8HYj85CB6lic9WRQeYRaxEW3PDAGBsCR KWZ/dSt4JP+UNtw6woaXdhjg9m0mOTfDC0mosAQz900l2V5T0Q3DB6Wi1Jy7gIZ7 H45o81+fUTAuDAGtfYUHJjJ+nD4NROeF1ew9sYyOXLbg1RyDsJq9MnGjDmW25Ytq E3mhBlnjAgMBAAECggEAJTvQpWLb7osjs1SuPipUwdbI942kOXmzrBxGnexnXAqv KmFc8tQQPZVG/0+u0CFbU7AO5abDVqolvGw4Wc45k0yS05k8yG/2qQYBtf2jU0oX MBwil7wDCZpYjJNvdVyi4M7wr+yFsKhcK6kpENwzx6HFFs8/U7ePzsoCRFfUvxxu 26rKP0rF5168DCTn8UMyYqEdPQ9MOD2xI6hPsJVelqu7eWRXAWrFgVH5L+xgd0mH MhtidnvayrUKt5eE+FifZN9QK2rgJ9lppGw9bPANSOQ+K1O7F+HIOwSCXCD2hM2t bHaQfeLfOeu32MlOMcGQIcQGqwWpI9XHWQBJO9OcgQKBgQD5azAYDJL/jRxaN4o+ 1QXOBRuimKNT4XDDyoPA0j6uwcXQa6LbhxPAack2ocyXm4O+g/wySiO/tnPoaNUH WGppGdnGuqX+JAK/35GsNb30BCXb0Gkz/bijTSm3fNKg63ZTREZlJ/KTH8/4bM+p B6FIO2g+oREjvVI6pRlBiLF70wKBgQDSL3nGHRzo6FSUjGmZBJ9f7koylYT7QuE8 mLoHG4fMoYaVDZk8eY10Xc9gL79aO4Uf98N004qbfL5QcbCgi5DBwrrIE1eInq0Y CNKtfySzg2sdCG8Ex3fhtZZyOljlc4bckTj4gmGgCuNUDhPo+k2roskSoXo0G3T/ gFLFHJwvsQKBgG3UqIH+j4Ce59xGVsciUQMOtsObyVg3jst40xnGuzmDNJN5wmY/ DhCNxMAc8ZXVMmdjgVu30BQsyM+P0jcA1SLg8kgTiuLlgpxxW5lktPfOF8m69Yii cnrekL8u5SVdamZySzliJOxqds8jQzJgnMHM/zONA5okVSBj8UItalJnAoGBAM8F 8hSfwkTp6b0zHCOauPv9MlnmicgOVNmhuMGdbUGx62ROs5ssQpbWe5bLENfofjRB juQ4JHMICFAl2woWzar7iYvd+T7Yw7dDoXdAHz8td0hucSMs8TiA6kFylPLTuobw B0RG7696afT1tMiqGeyvdwuBv2MplDDBDUWW64PRAoGAXmCqgu4AgKDrg/BsKCH3 070IxOXc+7tVdESmWyexDyNUfBCF+6Kowl1Kw3IgIcywA19sKK2msykyIy0Om+rM EaZfHaspt9srWNlzDsPy6nV5dkXZcSezKVXxJgriDk46sPlEBNKGrYPbNmSYpvrY NKgGQaYrJ5ixe1aEARcF2CE= -----END PRIVATE KEY----- #server.crt: -----BEGIN CERTIFICATE----- MIID6zCCAtOgAwIBAgIUYSb6OOUA1AaPPfdB/QhCrJFxYfIwDQYJKoZIhvcNAQEL BQAwcTELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0Jl aWppbmcxDzANBgNVBAoMBk15IE9yZzEWMBQGA1UECwwNQ0EgRGVwYXJ0bWVudDEV MBMGA1UEAwwMTVFUVCBSb290IENBMB4XDTI1MDcyMjA2MDk0MVoXDTI2MDcyMjA2 MDk0MVowazELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcM B0JlaWppbmcxDzANBgNVBAoMBk15IE9yZzENMAsGA1UECwwETVFUVDEYMBYGA1UE AwwPMTkyLjE2OC4xNTMuMTE0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC AQEAm1NDiGRlGbUKX938s9HFrTyprJ4fhjHgmVZuqy0Hj5jX5Wvq7iPDXQHUuStN 9rIMB31K8h8gBfTbWTALQnL/p5urvBACvLI8J3BEz8pweq61sUeqBNGFO8YnxRou vRPUeel9zg4GbLIf4T6BfwKtgMoqX/ROnnUiuE8sdo/KCreB5we+ZriP+jS1gVSQ NMiJFXbo08aEV8WefuQnTegjgooEbFpeq7dtHXKiDiHW5LUCj6TUGh1DcKVvlSTa ur7SMCvADT0W4Mp8Q9VXFCGwJugwy6pmtOqnPHEEBxs+1EGX22XeGS6ccP5HH2bm yJ1gSLI+yt0r+T0cMTsoeBR2EQIDAQABo4GAMH4wCQYDVR0TBAIwADALBgNVHQ8E BAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0RBAgwBocEwKiZcjAdBgNV HQ4EFgQUW7r5PWIFPiDa1RcxhUUcMwMID3wwHwYDVR0jBBgwFoAUGIBWMZwM5z40 nEZde/GSQxszsDEwDQYJKoZIhvcNAQELBQADggEBAKWlIJWaDzhhbBy9ftUkGIis EDjMvmLnkFchFFNAOWZq1yBujf3K0KqcmdgKfSearMQrK/YTHR1a39P21BSqnRpk dfNZfiVvRkJAcdY9SgderklUmPoY9huxumtGEPDtrkxkyuhgpk7/9YyavgyMCMdd cFIwdeBUEHPhHLw8TlhVT1UotClKbhjyRHOMrpfWXVnsa+U/UrPeqGn8uL49XPH4 9DqzKZPSZaPxNoAj0iHvo+7RvEl5jy+ixwRgnvdOsDteRwFFW0Kxd4Ccn4QKEgTY chx6XC0/a2Lg8KwxZbmDGoj4sqJ3PltuG8GZB6Vdv0FJnjAK6cZAQE0Hyclhhbs= -----END CERTIFICATE----- #server.key: -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCbU0OIZGUZtQpf 3fyz0cWtPKmsnh+GMeCZVm6rLQePmNfla+ruI8NdAdS5K032sgwHfUryHyAF9NtZ MAtCcv+nm6u8EAK8sjwncETPynB6rrWxR6oE0YU7xifFGi69E9R56X3ODgZssh/h PoF/Aq2Ayipf9E6edSK4Tyx2j8oKt4HnB75muI/6NLWBVJA0yIkVdujTxoRXxZ5+ 5CdN6COCigRsWl6rt20dcqIOIdbktQKPpNQaHUNwpW+VJNq6vtIwK8ANPRbgynxD 1VcUIbAm6DDLqma06qc8cQQHGz7UQZfbZd4ZLpxw/kcfZubInWBIsj7K3Sv5PRwx Oyh4FHYRAgMBAAECgf8CjFso4a/6ImSix5sqi0Z/xEvRIsb7OW/cR1uJc2bfjdWW h5Uf7Kl7EFltFq8ww1SiZGvWWd+TBj4sntBdRrjrBwkwpkXLn4ddHkc17k+Ds8B6 jn87lQE0LQwTlicuJiUjDhgCSWvRj+dcZEO7noLTzUoX4oPOFbd8G2oFuyL71s0l 4jO2poU42qsOxgBd2XIxePUc320/2a7Y0rABZJMLVx24oRzHqCLhyhRneqoqar0P 1hmS2tMeEr66db8U6Fr7J+P1SVt0KFSdrvEYCDHTCVf0TAZ25vYT69VznZGSok4U YQkBQiFFuyGXLgiRfrX/aL7rYxj2KBRAbce/lUECgYEAyx1coRA+FyptMZLWh7ny QSSq25/J7K+TPUMefIKFtKCmBRHg6gWu9YbTimXIOoq7l51xI+YT02VnEqjn9ToR vkUlNRyHBzsDt2VQTH+00Slo0tn4NS9Sb8uMezHiUgKGjiQWPQqwzUG4ToG2cYkj 8+vcxyHK5CWkWEVjh/1sRRkCgYEAw8R9Zqic+nv+9wRV219bmqyeSw2SkDXIyQSM tUBjqZHB1wh3Z+Tc0KdYSM9tymEwBJ5mx/nYxxF3gWXW0K4kuS1jtMFZscNaA2/1 VRweVXWBUlC/oZY1IEdLchtcQt3CfLIwQIKyikPwax0EU9YfQiTAiDNCAdBNJPF0 J/bMn7kCgYEAiBWbCxp7zz+Qu0cbTwJpafXsN4ueWWLlLoV6tocol/WOZhUtcP3v 0/bKYo6BEaADwbgtppSvMdJdtaXPC4ElhCqFnEkJuvFyMvzBSQ/DEORCpAp//vo+ rEJfU+b/MF0a078f2zP/cvYWSxsjJnxwxyt+1zgv3J3Pt4h+AA3t7XkCgYEAnCJh VXgTQx+T2RUHGOBz4efck8VuaD/NNK3BP2nsUriiXcst2JnKl0tweRme2fMrZfOj y8hz4UkIBBbh/it1tI8D34z56XIBn44yn7++XbBLBQjL3ac8FdNm08oIinftfqBr JXhXxziqTfOlmOvEoG9JcxdWhLXKYTWFy73ls1kCgYEAsrPcSpF8Ce3r+izDW2TM 2M4arK3T7hcMItLAQQoLO7RCYIivgQQE0WV9BmbC0fVTkptDMfks5s7QcU/6vzqC zPx0NowGnabNWS1vsXD4QyoOyV3gqfVhM46cWbRhxtRmMo/LGuJ8rXnHY3bgF5va VJlSyLW96jWK9neR0QOTKM4= -----END PRIVATE KEY----- </syntaxhighlight>将对应的证书和密钥保存到文件中,放在mosquitto的路径下。'''注意要将这些文件的所属组归给mosquitto.''' 然后修改mosquito的配置文件 ,该文件储存在 /etc/mosquitto/mosquitto.conf 中,配置如下:<syntaxhighlight lang="bash" line="1"> # Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at log_dest file /var/log/mosquitto/mosquitto.log listener 8883 tls_version tlsv1.2 cafile /etc/mosquitto/certs/ca.crt certfile /etc/mosquitto/certs/server.crt keyfile /etc/mosquitto/certs/server.key listener 1883 allow_anonymous true </syntaxhighlight>'''mosquitto的测试命令:'''<syntaxhighlight lang="bash" line="1"> #测试sub是否能收到信息 mosquitto_pub -h localhost -p 8883 -t bl618 -m "aaa" --cafile ca.crt --insecure #测试pub是否能推送信息 mosquitto_sub -h localhost -p 8883 -t bl618 --cafile ca.crt --insecure </syntaxhighlight> === HTTP与HTTPS相关demo说明: === ==== wifi_http: ==== 该demo会向网络服务器发送请求,根据返回结果判断http请求功能是否正常。 前置条件为:一个可共上网的wifi,可以向串口发送指令。<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_sta_connect your_wifi your_pwd bouffalolab />wifi_http_test www.xxx.com #以下为输出 bouffalolab />Http client task start ... Host:www.xxx.com, Server ip Address : the ip of websit server Http client connect server success! Press CTRL-C to exit. HTTP/1.1 200 OK </syntaxhighlight> ==== wifi_https: ==== 该demo会自动发加密数据到www.baidu.com,根据结果判断加密功能是否正常 前置条件:同上<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_https_test bouffalolab />dst_addr is 842C9824 #以下为输出 [I: 124359488][bl_https.c:126] HTTP/S> bouffalo connect fd = 0x62fd0dc0 [I: 124377783][bl_https.c:136] HTTP/S> ret = -28 [I: 124598639][bl_https.c:156] HTTP/S> ret = 0 [I: 124598987][bl_https.c:160] HTTP/S> total time:471 ms [I: 124679688][bl_https.c:168] HTTP/S> rcv_ret = 1179 [I: 124680077][bl_https.c:172] HTTP/S> proc_head_r 0, status_code 200, body_start_off 400 [I: 124680533][bl_https.c:180] HTTP/S> Copy to resp @off 0, len 779, 1st char 3C bl_TcpSslDisconnect end [I: 124683390][bl_https.c:264] HTTP/S> total time:555 ms [I: 124683715][bl_https.c:265] HTTP/S> test_1: status_code 200, resp_len 779 [I: 124684395][bl_https.c:267] HTTP/S> resp body: <!DOCTYPE html> <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1. </syntaxhighlight>如果你想要更改测试服务器目标,可以在https.c源码中添加test,或者直接更改这部分代码:<syntaxhighlight lang="c" line="1"> static void test_1(void) { const char *host = "www.baidu.com"; const uint8_t send_buf[] = "GET / HTTP/1.1\r\n" "Host: www.baidu.com\r\n" "User-Agent: curl/7.58.0\r\n" "accept: application/json\r\n" "\r\n"; uint8_t *buf; int resp_len; int status_code; buf = malloc(16 * 1024); if (NULL == buf) { LOG_E("malloc\r\n"); return; } resp_len = 16 * 1024; uint32_t start_time = 0, stop_time = 0; start_time = xTaskGetTickCount(); status_code = https_request(host, 443, send_buf, sizeof(send_buf) - 1, buf, &resp_len); stop_time = xTaskGetTickCount(); LOG_I("total time:%d ms\r\n", (stop_time - start_time)); LOG_I("test_1: status_code %d, resp_len %d\r\n", status_code, resp_len); buf[resp_len] = '\0'; LOG_I("resp body: %s\r\n", buf); free(buf); } </syntaxhighlight>上述函数被调用用来执行测试,更改该部分代码可以实现更改测试目标的目的。 === TCP的Demo说明: === ==== wifi_tcp: ==== 该部分代码编写了一个server.c和一个client.c,分别用于测试TCP服务端测试和客户端测试。 前置条件:PC端和开发板共同在一个局域网内,可以向串口发送指令。 使用picocom工具在串口中执行指令。 server测试:<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_sta_connect your_wifi_id your_wifi_pwd bouffalolab />wifi_tcp_echo_test 3365 #服务器建立成功 bouffalolab />tcp server task start ... Server ip Address : 0.0.0.0:3365 # 执行 nc -v ipaddr port 连接板子的tcp服务器 new client connected from (192.168.1.2, 57480) Press CTRL-C to exit. recv 7 len data </syntaxhighlight>client测试:<syntaxhighlight lang="bash" line="1"> #首先执行 nc -l -p 3365 在本地架起一个服务器 bouffalolab />wifi_sta_connect BL_TEST 12345678 bouffalolab />wifi_tcp_test localip 3365 #输出 bouffalolab />tcp client task start ... Server ip Address : 192.168.1.2:3365 TCP client connect server success! Press CTRL-C to exit. </syntaxhighlight> === UDP的demo说明: === 该部分代码将使用开发板作为sta节点连接wifi并且架起一个udp服务器。 前置条件:PC端和开发板在同一个局域网内,可以向串口发送指令。 测试过程:<syntaxhighlight lang="bash" line="1"> #连接开发板终端并发送指令 bouffalolab />wifi_sta_connect your_wifi_id 12345678 bouffalolab />wifi_udp_echo 3365 bouffalolab />udp server task start ... #服务其成功架起输出 ip Address : ip:3365 udp bind port success! Press CTRL-C to exit. #在PC端执行 nc -u server_ip server_port #直接发送 1234567890 #成功接受到数据 recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:1234567890 </syntaxhighlight> === OTA的demo说明: === ==== wifi_ota: ==== 该部分代码测试了基本tcp升级固件,使用pc端作为服务器,在同一局域网下,通过命令使得开发板连接ota服务器,接收固件包。 用于测试的固件包被放在了编译出的 build/build_out 目录下。 前置条件:PC端和开发板在同一个局域网内,可以向串口发送指令。 测试过程:<syntaxhighlight lang="bash" line="1"> #该程序需要分区表,所以在编译之后需要执行make whole来烧录whole bin make whole cd build/build_out cat wifi_ota_bl616.bin.ota | nc -nvl 3365 #在pc端架服务器并发送固件 #向串口发送指令连接WiFi并连接服务器开始测试 bouffalolab />wifi_sta_connect your_ssid your_passwd bouffalolab />wifi_ota_test PC_ip_addr 3365 #收到以下回复则表示测试成功 [STA CONSOLE] Calculated SHA256 Checksum:9F5EA3181316DA72589CD4CB0702AA25ED3094F7BED2B5898187044A0A01A077 [STA CONSOLE] Header SET SHA256 Checksum:9F5EA3181316DA72589CD4CB0702AA25ED3094F7BED2B5898187044A0A01A077 [STA CONSOLE] [OTA] [TCP] prepare OTA partition info [STA CONSOLE] [OTA] [TCP] Update PARTITION, partition len is 804560 reboot [STA CONSOLE] [OTA] [TCP] Rebooting [STA CONSOLE] dynamic memory init success, ocram heap size = 263 Kbyte </syntaxhighlight>该源码可以支持配置自动连接WIFI,可以修改源码中的该部分内容:<syntaxhighlight lang="c" line="1">#define AUTO_CONNECT_WIFI (0) /**************************************************************************** * Private Types ****************************************************************************/ /**************************************************************************** * Private Data ****************************************************************************/ struct bflb_device_s *gpio; static struct bflb_device_s *uart0; static TaskHandle_t wifi_fw_task; #if AUTO_CONNECT_WIFI struct bflb_device_s *wdg; static TaskHandle_t ota_task_handle; #endif static wifi_conf_t conf = { .country_code = "CN", }; #if AUTO_CONNECT_WIFI // clang-format off /* config your wifi ssid and password */ static const uint8_t wifi_sta_connet[] = "wifi_sta_connect H3C_21A0AD\r"; /* config your ota server and port */ static const uint8_t wifi_ota_test[] = "wifi_ota_test 192.168.123.120 3365\r"; /* reboot command */ // static const uint8_t send_buf1[] = "reboot\r"; // clang-format on extern Ring_Buffer_Type shell_rb; extern void shell_release_sem(void); SemaphoreHandle_t sem_wifi_init_done; SemaphoreHandle_t sem_wifi_connect_done; SemaphoreHandle_t sem_wifi_disconnect; #endif</syntaxhighlight>将宏定义 AUTO_CONNECT_WIFI 设定为1,并修改 wifi_sta_connect[] wifi_ota_test[] 字符串为你的对应命令即可。
返回
Demo:wifi sta
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息