找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 959|回復: 9
收起左側

STM32F103C8T6采集不到modbus溫濕度數據

[復制鏈接]
ID:906855 發(fā)表于 2024-12-9 18:21 | 顯示全部樓層 |閱讀模式
本帖最后由 blackgrape2012 于 2024-12-11 16:21 編輯

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

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

串口助手.png

調試2.png



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






回復

使用道具 舉報

ID:788390 發(fā)表于 2024-12-11 15:30 | 顯示全部樓層
用空閑中斷去接收數據看看
回復

使用道具 舉報

ID:906855 發(fā)表于 2024-12-11 16:21 | 顯示全部樓層
小屋憶流年 發(fā)表于 2024-12-11 15:30
用空閑中斷去接收數據看看

好的,謝謝!
回復

使用道具 舉報

ID:685462 發(fā)表于 2024-12-11 22:17 | 顯示全部樓層
說下個人看法。先確認你發(fā)出的數據時正確的,然后再確認接收數據。建議接上邏輯分析儀,看看485總線上的數據究竟是個啥。簡單可以用modbus slave+usb485模擬從機,可以監(jiān)測單片機實際發(fā)出的請求數據。
回復

使用道具 舉報

ID:294886 發(fā)表于 2024-12-12 08:17 | 顯示全部樓層
中間等待100ms,肯定接收不到,改成中斷接收,應該就沒我問題了
回復

使用道具 舉報

ID:1139664 發(fā)表于 2024-12-13 17:10 | 顯示全部樓層
我也做了  用串口中斷接收就行啊
回復

使用道具 舉報

ID:1139664 發(fā)表于 2024-12-13 17:11 | 顯示全部樓層
我也做了啊   單片機發(fā)完通信碼 延時一下  用串口中斷接收就行
回復

使用道具 舉報

ID:906855 發(fā)表于 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接收過,但當時沒接顯示屏不知道結果,用調試模式一直停在接收的那行不往下運行,觀察器變量也沒有數值。
結果.jpg        
回復

使用道具 舉報

ID:906855 發(fā)表于 2024-12-15 13:24 | 顯示全部樓層
之后又試了不同參數,發(fā)送和接收超時時間可以設定30以上,如果是30以下,有的數據就接收不全。

回復

使用道具 舉報

ID:906855 發(fā)表于 2024-12-15 13:26 | 顯示全部樓層
數據處理后效果
數據處理后.jpg

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表