abcd
abcd
我只是个路过的老年人~

注册于 2 年前

回答
45
文章
6
关注者
1

联网成功后, 调用 gethostbyname 接口来获取域名对应的 IP 地址.

SDK 的 doc 目录下有 w800_apis. chm 文件, 里面有各个模块的接口. 具体使用 demo 目录下都有相关的 demo 参考.

DNS server 是 W801 做 softap 模式时用到的, 而且只是把 dnsname 和自己的 IP 地址对应, 对于应用层来说, 一般不会用到这里的接口.

WIFI 协议这部分是封在库里面的, 没有对外开放. 按你的描述应该是需要改动库里面的代码才能实现的. 目前是没有支持私有协商协议的方式的.

新建文件夹. rar
更新下这两个文件的改动试下, 然后初始化的时候 hpmu. ClkSource 选 PMU_CR_32KRCBYPASS, 这种情况下 32K 时钟是从 40M 分出来的, 会比较准确, 在 sleep 模式下可以用作时钟源, 而 PMU_CLKSOURCE_32RC 是用的 32K 震荡产生的, 会有误差.

我现在手头没有工程了, 就改那几个地方就行, 你目前的问题是卡在哪一步了, 具体描述下

从左到右确实是按 OPT1-4, OPT6 来排序的, OPT5 是 GPIO 功能, 这里代码里写的是 OPT2 也没错, MMC 那一组就是对应的 SDIO MASTER 功能, OPT4 的 SDIO 功能这里没表达清楚, 对应的是 SDIO SLAVE 功能.

固件加密用的是 key. txt 里的秘钥, 也就是 30~66, 这个是需要用户自己设定的值, 改的时候需要改三个地方, 1. 把 key. txt 文件里改了; 2. 在 aft_build_project. sh 替换用到的地方; 3. 在烧录工具里的文件夹里有个 AvoidCopyTestCases. xml 里也有用到这个值, 需要修改替换掉.
capub_1. pem 和 capub_1_N. dat 这两个文件是用来加密 key. txt 的, 不需要修改, 目前固定使用这组值.
cakey. pem 和 capub. pem 是用来做签名和解签名用的, 也是需要用户自己修改的值, 直接改这两个文件的内容就可以, aft_build_project. sh 里不用改, 因为是直接引用的文件名. 烧录工具文件夹下的 capub. pem 需要同步修改. 同事, 如果烧录工具文件夹下的文件修改后, 需要关闭烧录工具重新打开.

fields 这个变量的结构体定义 struct ble_hs_adv_fields 里除了 uuids16 外也有 name, 直接替换成 name 比较就可以, 要注意的是, 有些 server 的 name 是直接放在广播里的, 这种用被动扫描就可以, 有些是放在 response 里的, 这种就需要主动扫描来获取, tls_ble_gap_scan 的第一参数来设置主动还是被动扫描. 发送可以用 ble_gattc_write_flat 这个接口, 在 wm_ble_client_api_multi_conn_demo. c 里就是一个 client 连接多个 server 的 demo, 可以参考.

和其他外部 flash 是一样的, 理论值 10 万次擦写

可以, 如果是测试可以用标准固件, 然后通过串口 0 发送 AT 指令测试, AT+BTEN=1, 0 使能蓝牙系统, 然后发送 AT+ONESHOT=4 开启蓝牙配网服务, 然后用手机小程序配网就行了.

demo 目录下 wm_uart_demo. c
src/app/bleapp 目录下 wm_ble_server_api_demo. c

注释要表达的意思是, PB6~PB11 在 W800 和 W801 上都有封装出来, 所以都可以用作 sdio 功能, 而 PA9~PA14 只有 W801 上封装出来了, 在 W800 上没有, 所以 PA9~PA14 对应的 case1: 情况只有在使用 W801 时才能生效. 使用 W801 时具体用 PA9~PA14 还是 PB6~PB11, 可根据需求自行决定.

发布
问题