最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

RK3568開發(fā)筆記(九):開發(fā)板buildroot固件調通RS485口,運行項目中RS485協(xié)議調試工

2023-09-14 10:17 作者:紅胖子_AAA紅模仿  | 我要投稿

前言

??上一篇已經將Qt移植過去了,此時我們移植整體應用不是什么問題了,那么現在應用對外得接口使用了RS485接口,板載了一個RS485,于是需要調通,兼容這個開發(fā)板得RS485。

補充

??看起來很簡單,弄起來不懂得就是不懂,懂得雖然懂還得花時間去研究一下開發(fā)板特性,與廠家溝通下,改下代碼,得益于之前使用HI3559DV300做過類似得RS485,所以這次弄起來花費了不太麻煩。

調通RS485過程

步驟一:RS485調試設備與開發(fā)板連線

??先得有個RS485調試轉USB,這樣才能調試,界限,筆者得是綠聯得RS422/485口,如下圖:
??

??開發(fā)板485口原理圖:
??

??于是接線,對了,這個口子是2.54mm得4dip得dip接插件,這個做硬件得一般都會備點貨,屬于通用接口,當年各種都備貨了一點:
??

??剪一根的一半,然后按照加插件插入的順序接入,因為看到1和4引腳是聯通的地,萬用表測了對覆銅層通的(GND),直接1和4接到一起了,然后接A對應T/R+,B對應T/R-,如下圖:
??

??接入發(fā)開飯:
??

??另外一頭usb接入PC電腦,用串口打開即可(PS:485的usb模塊對于pc來說就是一路串口)。

步驟二:打開開發(fā)板RS485調試工具

??這里的話,因為開發(fā)板使用的buildroot,去打開RS485這個類似于串口的設備還真沒有,得益于筆者項目研發(fā)都會產出階段性調試工具,于是便有了如下工具(PS:官方有個RS485調試Qt的demo,讀者可以使用官方的):
??

??(對了,這里還有相關工具的交叉編譯移植,其實跟x86下編譯類似,不贅述了,不懂得可以查看《RK3568開發(fā)筆記(八):開發(fā)板燒寫buildroot固件(支持hdmi屏),搭建Qt交叉編譯開發(fā)環(huán)境,編譯一個Demo,目標板運行Demo測試》得demo編譯過程,其實是一樣的。

步驟三:調試工具輪詢接收測試485口

??因為調試工具是被動接收485數據的,所以pc端打開485之后,1s發(fā)送一次,每一個端口依次打開,測試485口試哪個口。
??


??然后,結果試每個口都不行,這時候就懷疑:

  • 是否試AB的正負線接反了,可以直接交換,測一輪,也可以核對一次。

  • Rs485口是否有特殊的,需要自行拉上拉下(這里得到官方驗證,默認是拉上的,只能發(fā)出不接收)
    (PS:通過客服技術支持,得到口為ttyS7,且需要上下拉,默認是上拉,只發(fā)送)

??于是加了一個按鈕,直接發(fā)送出去測試一下:
??

??PC端收到了發(fā)送過來的消息:
??

??確認了,是需要上下拉,這時候查閱官方文檔,并沒有關于上下拉的描述,只能通過官方提供的RS485的Qtdemo來提取了。

步驟四:提取官方QT調試RS485的demo中的關鍵上下拉邏輯代碼

??

??

??直接摳代碼,一般是通過echo輸入到一個設備文件、file打開設備文件,或者ioctl的方式,這三種方式稍微提一下區(qū)別(何種方式看開發(fā)板方案上是怎么提供的):

  • echo方式:cmd的方式,程序中用system,qt中可以用QProcess,這個方式效率相對有點低,不適合頻發(fā)發(fā)送接收的狀態(tài)

  • file方式:file方式是文件方式,兼容linux系統(tǒng)和qt開發(fā)最合適的方式,當作文件寫入控制,很好的處理了環(huán)境問題,效率比echo高,比ioctl低,但是5ms足夠幾百字節(jié)的完成切換了(具體要按照實際情況發(fā)送調)。

  • ioctl方式:ioctl的方式在qt中不是很好,在某些情況下,qt根本不需要接觸到sysroot下面的依賴庫,直接qt交叉編譯自己的庫就可以,本開發(fā)板是已經融合好了??(PS:像海思這種,就只能將qt反向弄到sample里面去,因為環(huán)境都是makefile配置的)
    ??以上三種各有優(yōu)缺點,但是其實選擇權不在我們,而在主板方案提供商,所以拿過來用,能用就行了,別死磕。
    ??提取代碼如下:
    ??

??

步驟五:改造我們的串口代碼

??添加一個宏定義:
??

??在串口設備管理模塊添加相關代碼.
??在打開的時候,添加代碼:
??

??在發(fā)送的時候,添加代碼:
??

??在關閉的時候,添加代碼:
??

??改在完以后,再交叉編譯協(xié)議調試工具過去測試。

步驟六:調試解析成功

??在目標板上打開應用,打開對應的串口,然后實現收發(fā)成功:
??

小結

??RS485調試通了,大項目中的調試工具也通了,那么剩下的就是移植應用了,移植應用中,遇到了新的問題(做嵌入式,輪上都是沒問題,實際上問題一個又一個,運氣好不麻煩,運氣不好卡個一兩天,麻煩的一兩周都常有的事)


RK3568開發(fā)筆記(九):開發(fā)板buildroot固件調通RS485口,運行項目中RS485協(xié)議調試工的評論 (共 條)

分享到微博請遵守國家法律
新乡市| 江山市| 无极县| 绵竹市| 历史| 凤山县| 南木林县| 喀喇| 武强县| 扎鲁特旗| 云林县| 长兴县| 犍为县| 新昌县| 安仁县| 南部县| 手游| 安化县| 安阳市| 郸城县| 留坝县| 瓮安县| 航空| 嘉鱼县| 永年县| 高尔夫| 南川市| 商城县| 招远市| 宣化县| 奉化市| 贵南县| 兴国县| 鸡东县| 镇康县| 温州市| 嘉义市| 涿鹿县| 平乐县| 花莲市| 靖边县|