久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于RS485 的Modbus RTU 接收機制
[打印本頁]
作者:
xuwei
時間:
2015-6-13 00:57
標題:
基于RS485 的Modbus RTU 接收機制
由于LW同志的白眼
所以今晚決定搞一下基于RS485的modbus RTU 模式代碼移植。
不同的是LW同志是自己實現,而我是使用現成的Modbus協議棧!
1、Modbus協議棧移植,
協議棧移植代碼不算復雜,用了2個小時完成移植 for arm 上運行。移植完畢編譯成功
注意端口內的操作函數,注釋掉,然后在填充硬件相關部分
2、Modbus
接收層
機理其實就是一個串口中斷,然后每接收一個字符都會啟動一個定時器計時并且存入BUFF中,同時刷新定時器值,這樣如果有字符接收那么定時器就不斷的刷新而不會溢出,當一幀接收完畢后定時器由于得不到刷新而溢出,這就會導致定時器的溢出。定時器一旦溢出就會觸發一次事件,通知應用層,我收到了一幀報文你可以來取走了。空口無平,要LW同志死心要上代碼的,come on !
以上為
串口接收到一個字節中斷后調用,是一個指針函數,在協議棧初始化的時候他被定義為
也就是說我們只要找到
這個函數即可找到串口的底層接收代碼,OK繼續
很不幸我們找到了,并且看到他從硬件中讀了一字節
繼續
看他如何處理
哈哈到此已經可以看到了首先他狀態為
,所以先接受存進buff,然后開啟定時器
接著如果再有數據中斷就會這樣
可見是一樣的,和上面,那么有字節就會一直這樣循環,當然不能大于
最后就是什么時候幀結束了呢?
首先幀結束了會停止中斷,然后定時器就得不到刷新,然后定時器就會中斷,然后,,,繼續
不好意思又是一個函數指針,他也是初始化定義了如下
繼續
很明顯到這里已經完成了底層的幀截獲,他上報給了應用層
也就是說他是利用字節超時作為幀結束的標志。這就RTU模式底層串口的接收處理。僅此而已。并不高深。
3、應用層
底層把數據投遞后,應用層通過
函數進行輪訓是否收到一幀數據
然后繼續
比較孰了吧,這是判斷是不是給我們的,或者是不是廣播地址,因為廣播首地址我們從機也是要接受滴!然后繼續告訴上層進入
此處完了之后之各種的讀寫
然后就是用戶針對這些填充的函數實體即可!!!OK
以上是理論分析,實際代碼測試不日擇機進行!!
有是LW同志!能不能老實點啊
比特電子
老王
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲国产精品视频
|
91精品国产综合久久久动漫日韩
|
一区二区三区不卡视频
|
国产精品视频一二三区
|
91麻豆产精品久久久久久
|
欧洲视频一区二区
|
三级av在线
|
av在线视
|
中文字幕视频在线看5
|
免费一级黄色电影
|
欧美日韩一区在线
|
性国产丰满麻豆videosex
|
天天干天天爱天天
|
免费国产视频在线观看
|
亚洲精品高清视频在线观看
|
区一区二区三在线观看
|
亚洲成人精品国产
|
亚洲精品久久久久久久久久久久久
|
成人超碰
|
久草青青草
|
99精品国产成人一区二区
|
国产一区二区精品在线观看
|
国产欧美一区二区三区在线看
|
天堂素人约啪
|
超碰免费在线观看
|
久久免费观看视频
|
欧美涩涩网
|
亚洲视频在线一区
|
久久综合久久综合久久综合
|
久久久免费毛片
|
国产精品自拍视频网站
|
亚洲综合色丁香婷婷六月图片
|
黄色免费观看
|
蜜桃传媒av
|
久久av资源网
|
国产高清自拍视频在线观看
|
精品真实国产乱文在线
|
国产精品日韩在线观看
|
亚洲人成人一区二区在线观看
|
中文字幕免费视频
|
国产片一区二区三区
|