是不是mqtt的版本不一樣導致的mqtt連接包返回失敗。我看你用mqttx去連接服務器時,設置的mqtt的版本是v5.0,但是SDK支持的是v3.1.0。
是不是mqtt的版本不一樣導致的mqtt連接包返回失敗。我看你用mqttx去連接服務器時,設置的mqtt的版本是v5.0,但是SDK支持的是v3.1.0。
打開串口和創建任務沒有關系。打開串口只需要初始化IO和tls_uart_port_init初始化串口以及tls_uart_rx_callback_register注冊接收回調就行了。任務是用來接收處理串口接收回調的消息的。只需要一個任務就可以處理多個串口的消息。
支持,SDK裡有相關的demo可以參考。
1、確認下是否用到了這兩個頭文件裡的接口或者定義,如果沒用到直接刪除引用頭文件即可,或者直接刪除看是否能編譯通過。
2、在第一步確認的基礎上,確實用到了這兩個頭文件,那需要有這兩個.h的源文件,剩下的操作就和stm32用keil編譯一樣了,在CDK裡左邊的工程處,右鍵add這兩個頭文件到工程裡,在工程設置裡把頭文件的的路徑添加上。就可以了。
一般用來查找內存泄漏或者破壞的地方,打開後,正常運行時,不會打印,直到出現內存申請、釋放失敗,就會打印出來所有已申請且未釋放的內存用來查看。你這截圖不完整,看不出什麼來。
內存分配失敗,具體做了什麼
看你發送使用的是什麼,假如是PC端串口工具,工具端都是可以設置以ASCII格式發送,還是以hex發送的。“hex數據位置不對而且是4個一組”猜測是不是跟你寫的代碼有關系,接收數據放在了uint32_t型還是uint8_t型的變量裡。
可以這樣,編輯代碼用vscode,編譯用msys,下載用串口工具。全部在vscode裡操作實現不了。
看下wm_ble_server_api_demo.c,裡面實現了server的例子,在這個結構體裡面定義了UUID以及屬性以及對應的回調函數,可以根據自己的應用情況加減屬性以及修改UUID,如果是讀寫屬性的,收到相關事件後會直接調用gatt_svr_chr_demo_access_func這個回調函數,在裡面實現自己的操作,如果是notify,直接用tls_ble_server_demo_api_send_msg接口發送數據就可以了。
1.There is currently no W861 development board available.
2.The reason for NAK prompt is that in most cases, due to unstable serial port connections, some USB to serial port boards do not support high baud rates. If this error persists, you can try reducing the download baud rate.
3.The W806 chip does not have Wi-Fi function.
4.Unable to read firmware file from device.
沒有產生廣播事件指的是用手機收不到設備這個廣播嗎?手機端用藍牙助手類的APP是可以看到這個設備廣播的信息的,名字應該是WM-XXXX之類的。
使用的是W800嗎,芯片的具體絲印是什麼。感覺跟發射功率沒關系,發射功率都是一樣的設置,要不行都不行。發射功率的接口是tls_ble_set_tx_power,參數power_type寫11就行,默認index是2,對應4dB。我覺得可以用不行的芯片刷個標準固件執行下AT+WSCAN掃描指令,看下返回結果裡路由器的信號強度是什麼樣的,比如離得近的路由器的信號強度能到多少。
訂閱主題,demo裡有啊,在mqtt_demo_init裡連接mqtt成功後,調用mqtt_subscribe接口來訂閱自己的主題,這樣雲端有這個主題的消息時,會主動下發給訂閱該主題的設備。設備收到雲端發來的消息時,在循環裡mqtt_demo_loop就會能解析到這個消息,MQTTParseMessageType、mqtt_parse_pub_topic、mqtt_parse_publish_msg,然後做自己的處理就行了,demo裡就是收到消息後打印了出來,並回傳了一條消息。
粗略看了你的代碼下,有如下幾個問題:1、OutDQ0和OutDQ1定義錯誤,輸出高低電平並不是通過設置上下拉來實現的,tls_gpio_cfg設置為輸出後,還需要調用tls_gpio_write來設置輸出高、低電平,另外我記得電路外部是需要加上拉電阻的,所以這裡應該配置為上拉輸出;2、如果沒有外部電阻的情況下,IpuDQ配置為上拉,組好還是有外部上拉電阻,畢竟內部是個弱上拉;3、延時混亂,tls_os_time_delay()接口實現的延時單位是系統的1個tick,如果configTICK_RATE_HZ設置的是1000,那就是最小延時時間只能到1ms,想要實現us級別的延時,就需要用自習用for循環 + __NOP();來實際測量實現了,或者用樓上的方式試下行不行。
至於具體時序網上參考程序很多,主要是IO的操作和延時弄對了就不會有大問題,如果IO操作不清楚的,可以參考wm_gpio_demo.c程序。開一個帖子就行了。
The w80x chip did not consider the CAN interface in its design.
問 通過tls連接mqtt卡在demo第三步