https://blog.csdn.net/baidu_31437863/article/details/82178708
STM32(五) Modbus
https://blog.csdn.net/WHL_YSU/article/details/87864362
基於STM32實現 Modbus協議調試筆記 --利用485通信實現單個字符的接收與發送
http://www.stmcu.org.cn/module/forum/thread-599873-1-1.html
[分享] 標准的modbus通信協議模板(適合新手)
注: 本程序適合新手入門,第一個程序寫了如何實現串口的收發多個字節程序 第二個程序寫了如何利用主程序循環來監控數據接收 第三個程序寫了如何利用定時器來監控數據是否發送和接收完畢 第四個程序寫了RS485如何通信通信 第五個程序寫了modbus協議。。。。。。。。。。 通過上位機發送一串字節后並在顯示屏上顯示所發送的數據,大概就是這個功能 芯片是STM32F103VET的,編譯器是IAR6.1的。需要的就帶走吧! |
-
-
799.08 KB, 下載次數: 1500, 下載積分: ST金幣 -1
-
-
826.95 KB, 下載次數: 1220, 下載積分: ST金幣 -1
-
-
812.14 KB, 下載次數: 1135, 下載積分: ST金幣 -1
-
-
816.13 KB, 下載次數: 1567, 下載積分: ST金幣 -1
-
對需要的朋友很有用 modbus在工業現場的底層通信 應用非常廣泛. 傳個資料 ,版權歸網絡所有 <ignore_js_op>-
-
這是班的原理圖 <ignore_js_op>-
-
3.23 MB, 下載次數: 6040, 下載積分: ST金幣 -1
-
-
147.16 KB, 下載次數: 835, 下載積分: ST金幣 -1
http://www.51hei.com/bbs/dpj-137780-1.html
Modbus 一個工業上常用的通訊協議、一種通訊約定。Modbus協議包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比較簡單,在單片機上很容易實現。modbus協議簡單解析如下:
1、主機對從機寫數據操作
如果單片機接收到一個報文那么就對報文進行解析執行相應的處理,如上面報文:
01 06 00 01 00 17 98 04
從機地址 功能號 數據地址 數據 CRC校驗
假如本機地址是 1 ,那么單片機接收到這串數據根據數據計算CRC校驗判斷數據是否正確,如果判斷數據無誤,則結果是:
HoldDataReg[1] = 0x0017;
MODBUS主機就完成了一次對從機數據的寫操作,實現了通訊。
2、主機對從機讀數據操作
主機進行讀HoldDataReg[1] 操作,則報文是:
01 03 00 01 00 01 D5 CA
從機地址 功能號 數據地址 讀取數據個數 CRC校驗
那么單片機接收到這串數據根據數據計算CRC校驗判斷數據是否正確,如果判斷數據無誤,則結果是:返回信息給主機,返回的信息也是有格式的:
返回內容:
01 03 02 0017 F8 4A
從機地址 功能號 數據字節個數 兩個字節數據 CRC校驗
MODBUS主機就完成了一次對從機數據的讀操作,實現了通訊。
上傳的程序是根據手把手教你51單片機的例程修改而來,能實現讀/寫操作(03,06碼),成功通過modbus調試精靈測試,讀寫通訊正常!
由於剛接觸modbus通訊協議,之前一直出現通訊超時的問題,找了網上很多資料,都不得其解,所以把程序拿出來和大家分享。希望和大家相互學習、共同進步!
<ignore_js_op>所有資料51hei提供下載:
<ignore_js_op>29. RS485通信實驗.rar
http://news.eeworld.com.cn/mcu/article_2017100934976.html
在STM32上移植FreeModbus RTU的一點經驗總結
-
-