1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: STM32F103C8T6采集不到modbus溫濕度數據 [打印本頁]

作者: blackgrape2012    時間: 2024-12-9 18:21
標題: STM32F103C8T6采集不到modbus溫濕度數據
本帖最后由 blackgrape2012 于 2024-12-11 16:21 編輯

將溫濕度傳感器通過485轉USB連接到PC用自帶的測試軟件可以測量到溫濕度,發送請求碼是8字節16進制01 04 00 00 00 02 71 CB,能夠獲得返回值。
用串口調試助手發送01 04 00 00 00 02 71 CB請求碼也可以獲得傳感器上傳的數據。
想用STM32F103C8T6串口接ttl轉485然后接溫濕度傳感器,發送8字節請求碼后收到返回的9字節16進制只有第一個字節是0x01,其它都是0,弄了好幾天不知道什么地方出問題了,煩請幫忙看看。

附件里有源程序,用STM32CubeMX生成的,不勝感謝!








USART_TEST.7z (293.67 KB, 下載次數: 0)







作者: 小屋憶流年    時間: 2024-12-11 15:30
用空閑中斷去接收數據看看
作者: blackgrape2012    時間: 2024-12-11 16:21
小屋憶流年 發表于 2024-12-11 15:30
用空閑中斷去接收數據看看

好的,謝謝!
作者: lose2836    時間: 2024-12-11 22:17
說下個人看法。先確認你發出的數據時正確的,然后再確認接收數據。建議接上邏輯分析儀,看看485總線上的數據究竟是個啥。簡單可以用modbus slave+usb485模擬從機,可以監測單片機實際發出的請求數據。
作者: xzh5508    時間: 2024-12-12 08:17
中間等待100ms,肯定接收不到,改成中斷接收,應該就沒我問題了
作者: 123321355    時間: 2024-12-13 17:10
我也做了  用串口中斷接收就行啊
作者: 123321355    時間: 2024-12-13 17:11
我也做了啊   單片機發完通信碼 延時一下  用串口中斷接收就行
作者: blackgrape2012    時間: 2024-12-14 17:26
謝謝各位指點,問題解決了。就是接收也用HAL_MAX_DELAY
HAL_UART_Transmit(&huart1,dataTrnd,8,HAL_MAX_DELAY);//請求                       
HAL_UART_Receive(&huart1,dataRcyd,9,HAL_MAX_DELAY);//接收
HAL_Delay(500);
其實之前也用HAL_MAX_DELAY接收過,但當時沒接顯示屏不知道結果,用調試模式一直停在接收的那行不往下運行,觀察器變量也沒有數值。
       

作者: blackgrape2012    時間: 2024-12-15 13:24
之后又試了不同參數,發送和接收超時時間可以設定30以上,如果是30以下,有的數據就接收不全。


作者: blackgrape2012    時間: 2024-12-15 13:26
數據處理后效果







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1