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

注册于 2 年前

回答
45
文章
6
关注者
1

for (; ; )
{

tls_bitband_write (HR_GPIO_DATA,  11,  0) ; 
tls_bitband_write (HR_GPIO_DATA,  11,  1) ; 

}

image. png
image. png
image. png

测试可以进中断, 因为设置的打印延时时间是 1s, 远远大于定时器定时时间 5ms, 所以打印出来的值只能看到 4 和 5 很正常.

收发的最大长度是双方协商的 mtu 值, 可以在 ble_gap_evt_cb 连接成功 BLE_GAP_EVENT_CONNECT 调用 tls_bt_async_proc_func (BleServerConnExchangeMtu, NULL, 600) ; 主动发起 mtu 协商, 然后看下协商的结果是多少. image. png

片选软控制, 并不是用任何一个 IO 来拉高拉低, 需要用__HAL_AFIO_REMAP_SPI_CS 配置有片选功能的 pin 脚为 cs 后, 调用__HAL_SPI_SET_CS_LOW, __HAL_SPI_SET_CS_HIGH 来使用.

底层代码改了之后需要执行 make lib 编译才会生效, 然后再 make

AT+BTEN=1, 0, 第一个参数 1, 代表的就是串口 1, 如果是用串口 1 发送的 at 指令, 那发送后, 串口 1 就被设置成蓝牙 log 输出口了, 所以再发其他 at 指令就没办法识别了, 可以试下 AT+BTEN=255, 0, 或者其他串口号, 只要不是 1 就行.

可以看下 wm_ble_server_api_demo. c 里 wm_ble_server_demo_conn_param_update_slave 这个接口, 可以设置连接时间参数, 另外如果只用到蓝牙而没用到 wifi 功能的情况下, 还可以调用 tls_bt_ctrl_sleep 来使能蓝牙的 sleep 模式

wm_psram_config (1) ; psram_init (PSRAM_QPI) ; 初始化只需要调用这两个接口就行了, wm_psram_config 根据实际使用的 io 选择哪一组, 使用的时候, 起始地址是 0x30000000, 由于没有做到内存管理里, 所以无法向普通内存一样动态申请释放, 需要单独指定地址, 自己管理, 其他的操作就和普通内存一样了, 比如 memcpy, memset 之类的.

如果使用的是 W806 可以参考这个, 如果使用的是 W800 或者 W801 的 SDK, 也可以参考这个修改, 如果不是用的 CDK 编译就不是修改 aft_build_project. sh 文件, 得修改 tools/w800/rules. mk 文件.

math 库函数, 应该和 cjson 没关系, 用 CDK 编译, 工程没有把 math 库链接进来, 可以试下在工程设置里的 linker 里把 math 库添加进来. image. png

可以吧, 我用我的外扩 psram 的板子试了, 可以正常打印出来数据.
image. png
image. png

可能用的不是最新版本, 之前的旧版本没有把 math 库添加进来, 所以链接的时候不过, 可以用新版本或者在当前版本里添加 math 库. 123. png

发布
问题