清空記錄
歷史記錄
取消
清空記錄
歷史記錄
支持開(kāi)源鴻蒙/Linux /Andriod 11/麒麟,兼容樹(shù)莓派 ;
四核A55,最高1.8G主頻 Mali G52-2EE GPU ;
支持OpenGL/CL/Vulkan/1T NPU/8MISP ;
支持TensorFlow/MXNet/PyTorch/Caffe ;
支持1*千兆以太網(wǎng)、3*USB2.0、1*USB3.0、3*UART、2*SPI、2*I2C、28*GPIO、1*MIPI DSI、1*HDMI ;
支持OpenHarmony3.2/4.0/4.1版本,開(kāi)放SDK源代碼 ;
活躍的開(kāi)發(fā)者社區(qū), 更多牛人在線技術(shù)支持 ;
超小尺寸,極致性價(jià)比,只需249元 ;
接下來(lái)我將詳細(xì)介紹PC通過(guò)CH340連接Purple Pi OH開(kāi)發(fā)板后測(cè)試串口是否正常,若此方法您已使用并且還是無(wú)法打開(kāi)串口,可以跳過(guò)此小段直接看后續(xù)的方法。
CH340驅(qū)動(dòng)安裝
現(xiàn)在我來(lái)分享如何排查PC無(wú)法識(shí)別CH340的可能問(wèn)題:
1. 驅(qū)動(dòng)未安裝:當(dāng)“設(shè)備管理器“顯示未知設(shè)備并且圖標(biāo)上帶有黃色感嘆號(hào)時(shí),我們首先需要檢查我們的PC機(jī)是否安裝了CH340對(duì)應(yīng)的驅(qū)動(dòng),安裝方法如下:
a) 下載CH340驅(qū)動(dòng)安裝軟件,一般在網(wǎng)上一檢索就可以下載到,我們雙擊打開(kāi)后,頁(yè)面如下圖所示:
b) 安裝之前先點(diǎn)擊卸載,這是為了防止電腦之前有驅(qū)動(dòng)殘留的數(shù)據(jù),卸載完畢后我們?cè)冱c(diǎn)擊安裝即可。
2. CH340模塊本身?yè)p壞:CH340插入U(xiǎn)SB口時(shí),模塊本身會(huì)有紅色PWR燈亮起,若不亮可能是模塊本身?yè)p壞。
3. 擴(kuò)展塢或PC主板USB口損壞:如果上述的方法無(wú)法解決,我們也應(yīng)該考慮是否是擴(kuò)展塢或者PC主板USB口損壞,此時(shí)我們需要更換USB口甚至更換另一臺(tái)PC機(jī)插入排查是不是這個(gè)問(wèn)題。
4. 開(kāi)發(fā)板連接著CH340導(dǎo)致無(wú)法識(shí)別:導(dǎo)致這種現(xiàn)象的原因有很多種,可能是您使用開(kāi)發(fā)板給CH340提供了錯(cuò)誤的供電,當(dāng)供電不穩(wěn)定或者電流不足有可能會(huì)導(dǎo)致CH340無(wú)法正常工作,因此我們通常只連接CH340和開(kāi)發(fā)板的GND、Tx、Rx引腳。還有可能是開(kāi)發(fā)板硬件資源與CH340有沖突導(dǎo)致無(wú)法識(shí)別。甚至是開(kāi)發(fā)板電路設(shè)計(jì)問(wèn)題,即沒(méi)有按照CH340規(guī)范來(lái)設(shè)計(jì)電路等原因。
1. 將CH340插入PC機(jī)USB口,打開(kāi)“設(shè)備管理器”
2. 在設(shè)備管理器列表中,找到“端口 (COM & LPT)”類(lèi)別,展開(kāi)它。你應(yīng)該能看到一個(gè)標(biāo)記為“USB-SERIAL CH340”(或類(lèi)似名稱(chēng))的設(shè)備,旁邊會(huì)顯示它的 COM 端口號(hào),比如 COM6。
若成功顯示,即代表CH340模塊正常。
3. 接下來(lái)我們需要將CH340的RX和TX分別連接在Purple Pi OH開(kāi)發(fā)板的TX和RX腳上,在連接時(shí)可以根據(jù)背后絲印來(lái)判斷是否連接正確。Purple Pi OH開(kāi)發(fā)板串口節(jié)點(diǎn)/dev/ttyS0引腳位置,如下圖 所示:
至此我們的硬件連接就完成了,接下來(lái)可以開(kāi)始軟件測(cè)試串口步驟。
1. 第一步我們首先需要進(jìn)入Purple Pi OH開(kāi)發(fā)板的命令行終端,可以通過(guò)ADB連接到其中。ADB的使用方法可以參考觸覺(jué)智能官網(wǎng)產(chǎn)品資料中的4.2章節(jié),鏈接如下:
https://industio.yuque.com/mdtih8/gyzv1h/uecrhad89197uh01?singleDoc#aOLed
2. 第二步我們進(jìn)入到命令行后,使用”su”切換為root身份,通過(guò)執(zhí)行“dmesg | grep tty”命令查看系統(tǒng)啟動(dòng)時(shí)識(shí)別到的串口設(shè)備,再使用 stty 命令檢查和設(shè)置串口參數(shù),例如”stty –F /dev/ttyS0 115200”將串口節(jié)點(diǎn)波特率設(shè)置為115200.
3. 第三步我們打開(kāi)SSCOM或者類(lèi)似的串口調(diào)試助手,選擇“設(shè)備管理器“中識(shí)別到的COM口,配置波特率為剛剛使用stty命令設(shè)置的波特率,同時(shí)設(shè)置數(shù)據(jù)位、停止位、校驗(yàn)位以及流控制參數(shù)分別為8,1,None,None,隨后點(diǎn)擊打開(kāi)串口,如下圖所示:
4. 如果此時(shí)一切順利,我們便可以通過(guò)SSCOM與Purple Pi OH開(kāi)發(fā)板互相收發(fā)串口信息,發(fā)送數(shù)據(jù)使用指令”echo “test” > /dev/ttyS0”,查看開(kāi)發(fā)板接收到的數(shù)據(jù)使用”cat /dev/ttyS0”,此時(shí)SSCOM發(fā)送數(shù)據(jù)到開(kāi)發(fā)板,開(kāi)發(fā)板會(huì)將串口數(shù)據(jù)回顯至SSCOM,如下圖所示:
1. 數(shù)據(jù)呈現(xiàn)亂碼或者”\0\0\0…”:波特率設(shè)置不對(duì),使用stty修改開(kāi)發(fā)板串口節(jié)點(diǎn)波特率后再次嘗試。
2. 怎么查看串口節(jié)點(diǎn):通過(guò)命令”ls /dev/tty*”查看設(shè)備串口節(jié)點(diǎn),通過(guò)硬件規(guī)格書(shū)或者使用手冊(cè)查詢開(kāi)發(fā)板串口引腳或端口位置。
3. 設(shè)備節(jié)點(diǎn)無(wú)法操作:通過(guò)”ls –l /dev/tty*”查看是否權(quán)限不足,通過(guò)su切換管理員后使用”chmod 666 /dev/ttyS0“修改文件讀寫(xiě)權(quán)限。
4. 用戶使用自己的app無(wú)法打開(kāi)串口節(jié)點(diǎn):先查看自己的app是否在Android 11的版本被支持,也有可能app不掃描這個(gè)節(jié)點(diǎn)名稱(chēng),可以重新找一個(gè)串口助手查看是app問(wèn)題還是串口節(jié)點(diǎn)問(wèn)題(可以使用Google開(kāi)源SerialPort)?;蛘卟榭创谑欠癖徽加?,嘗試打開(kāi)其他串口設(shè)備節(jié)點(diǎn)。
若上述操作無(wú)法解決串口無(wú)法被訪問(wèn)的問(wèn)題,我們就需要查看SELinux是否對(duì)我們的訪問(wèn)做了限制,接下來(lái)我將分享SELinux的概念和處理方式。
在基于Android的設(shè)備上,SELinux(Security-Enhanced Linux)是一種安全模塊,用于強(qiáng)化訪問(wèn)控制策略。SELinux可以通過(guò)強(qiáng)制訪問(wèn)控制(MAC)來(lái)限制應(yīng)用程序和系統(tǒng)進(jìn)程對(duì)系統(tǒng)資源的訪問(wèn)。
1. 沒(méi)有正確的SELinux政策:如果SELinux政策沒(méi)有為訪問(wèn)特定串口的進(jìn)程或應(yīng)用程序明確授權(quán),那么訪問(wèn)會(huì)被阻止。需要相應(yīng)的SELinux上下文或標(biāo)簽(如u:object_r:serial_device:s0)允許對(duì)應(yīng)用程序或進(jìn)程訪問(wèn)串口。
2. SELinux處于Enforcing模式:當(dāng)SELinux處于Enforcing模式時(shí),它會(huì)強(qiáng)制執(zhí)行所有的安全策略,并阻止任何違反這些策略的行為。如果串口設(shè)備的SELinux標(biāo)簽或訪問(wèn)控制列表(ACL)配置不正確,任何嘗試訪問(wèn)這些設(shè)備的操作都會(huì)被阻止。此時(shí)我們可以使用“getenforce“命令直接檢查SELinux的模式。
3. 設(shè)備文件權(quán)限不足:串口通常作為設(shè)備文件(如/dev/ttyS0)存在于文件系統(tǒng)中。如果這些文件的SELinux標(biāo)簽設(shè)置不允許特定的訪問(wèn)(例如,某個(gè)應(yīng)用需要讀寫(xiě)權(quán)限但僅被授予了讀權(quán)限),則訪問(wèn)會(huì)被拒絕。
要解決由SELinux導(dǎo)致的串口訪問(wèn)問(wèn)題,可以采取以下步驟:
1. 檢查SELinux狀態(tài):使用“getenforce“命令查看SELinux的當(dāng)前模式。如果是Enforcing,系統(tǒng)會(huì)強(qiáng)制執(zhí)行所有策略。
2. 查看和修改SELinux政策:使用”audit2allow”查看由于SELinux政策被拒絕的相關(guān)日志,以了解為什么訪問(wèn)被拒絕。根據(jù)需要調(diào)整或創(chuàng)建新的SELinux政策。這可能需要深入了解SELinux政策語(yǔ)言,并使用如semanage和semodule等工具。
3. 臨時(shí)切換到Permissive模式:作為臨時(shí)解決方案,可以將SELinux設(shè)置為Permissive模式,這樣SELinux不會(huì)阻止任何操作,但會(huì)記錄所有違反政策的行為??梢允褂?/span>“setenforce 0“命令來(lái)實(shí)現(xiàn),如下圖所示:
4. 于安卓源碼中關(guān)閉:修改安卓源碼中device/rockchip/common/BoardConfig.mk 的BOARD_SELINUX_ENFORCING := false;
5. 確保有適當(dāng)?shù)脑O(shè)備文件權(quán)限:確保應(yīng)用或進(jìn)程有正確的權(quán)限來(lái)訪問(wèn)串口設(shè)備文件。使用ls -l查看設(shè)備文件的權(quán)限和所有權(quán)。
購(gòu)買(mǎi)鏈接
Purple Pi OH 購(gòu)買(mǎi)鏈接 瑞芯微RK3566樹(shù)莓派開(kāi)源鴻蒙開(kāi)發(fā)板PurplePiOH安卓Linux AI編程-淘寶網(wǎng) (taobao.com) Purple Pi OH已過(guò)XTS兼容性認(rèn)證 END