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文件。

因为你这个while(1){}足以干死所有的任务了

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

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

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

发布
问题