標(biāo)題: 51單片機modbus雙從機端口設(shè)計問題 [打印本頁]

作者: suuy79    時間: 2019-2-9 12:21
標(biāo)題: 51單片機modbus雙從機端口設(shè)計問題
51單片機(STC15或者STC8)實現(xiàn)MODBUS雙從機端口,
利用單片機的串口1和串口2同時作為MODBUS RTU從機,一個端口可以實現(xiàn),如果要實現(xiàn)通過兩個串口實現(xiàn)從機功能,應(yīng)該怎么處理
哪位能提供一下思路或者提供一個參考代碼?

作者: suuy79    時間: 2019-2-13 15:15
自己先頂一下
作者: 笨笨兔    時間: 2019-2-13 16:20
既然使用 MODBUS,采用不同的地址就OK了。
作者: lushaobiao1    時間: 2019-2-13 17:39
這個簡單,我以前用stm32做過雙串口實現(xiàn)MODBUS RTU從機,2個串口分別有自己的中斷服務(wù)函數(shù),接收buff,發(fā)送buff都不要共用,中斷優(yōu)先級也別搶占。把你寫好的串口1的代碼,復(fù)制一份出來,稍微修改一下就可以了
作者: suuy79    時間: 2019-2-13 17:54
版主,都>96小時了,趕緊叫大師出來露個面
作者: suuy79    時間: 2019-2-13 20:08
lushaobiao1 發(fā)表于 2019-2-13 17:39
這個簡單,我以前用stm32做過雙串口實現(xiàn)MODBUS RTU從機,2個串口分別有自己的中斷服務(wù)函數(shù),接收buff,發(fā)送 ...

兩個串口公用一個MODBUS程序,現(xiàn)在有一個問題,就是串口1在調(diào)用MODBUS的時候,串口2如果有請求的話就得等串口1處理完,反之亦反。現(xiàn)在有幾個問題:
1、如何判斷當(dāng)前串口調(diào)用完了MODBUS程序?
2、兩個中斷的不管是同級還是優(yōu)先級,怎樣設(shè)置才更好一些?
3、超時應(yīng)該怎么做?
作者: suuy79    時間: 2019-2-13 20:10
笨笨兔 發(fā)表于 2019-2-13 16:20
既然使用 MODBUS,采用不同的地址就OK了。

我說的是單片機作為從機的MODBUS雙串口源代碼,估計你說的是上位機訪問方面的吧
作者: 笨笨兔    時間: 2019-2-14 08:16
suuy79 發(fā)表于 2019-2-13 20:10
我說的是單片機作為從機的MODBUS雙串口源代碼,估計你說的是上位機訪問方面的吧

有區(qū)別嗎?
從機的MODBUS,你就當(dāng)這是另一臺從設(shè)備不就完了。。。。。。
作者: suuy79    時間: 2019-2-14 10:12
笨笨兔 發(fā)表于 2019-2-14 08:16
有區(qū)別嗎?
從機的MODBUS,你就當(dāng)這是另一臺從設(shè)備不就完了。。。。。。

你的意思在單片機內(nèi)部再重新搞一套一模一樣的代碼?
作者: wush1977    時間: 2019-2-14 10:39
中斷處理程序只負責(zé)接收,建立兩個數(shù)組,中斷程序只負責(zé)把接收到的數(shù)據(jù)丟到數(shù)組即可,協(xié)議解析在主程序中實現(xiàn),另外將中斷嵌套功能使能。
作者: suuy79    時間: 2019-2-14 14:23
wush1977 發(fā)表于 2019-2-14 10:39
中斷處理程序只負責(zé)接收,建立兩個數(shù)組,中斷程序只負責(zé)把接收到的數(shù)據(jù)丟到數(shù)組即可,協(xié)議解析在主程序中實 ...

能夠提供一個示例代碼嗎?




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