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

發布
問題