嵌入式硬件篇---龍芯2k1000串口

針對串口錯誤 “device reports readiness to read but returned no data (Device disconnected or multiple access on port?)” 的排查和解決方法

硬件方面

  1. 檢查連接
    • 確認串口設備(如串口線、連接的模塊等)與龍芯設備之間的物理連接是否牢固,沒有松動、脫落情況。嘗試重新插拔串口線,確保兩端都插緊。
    • 查看串口線是否有破損、斷裂等物理損壞跡象,如有,更換新的串口線。
  2. 檢查設備供電
    • 確保串口設備供電正常。如果是外接設備,檢查其電源適配器是否正常工作,輸出電壓和電流是否符合設備要求。可以使用萬用表測量電源適配器輸出,若不正常,更換適配 器。
    • 對于由龍芯設備直接供電的串口設備,檢查龍芯設備的電源輸出是否穩定,可查看龍芯設備電源指示燈狀態,或使用相關工具監測電源輸出。
  3. 排查設備沖突
    • 確認是否有多個設備同時嘗試訪問該串口端口。如果有其他程序或設備在占用 /dev/ttyS3 端口,可能會導致沖突。關閉其他可能使用該串口的程序或設備,然后重新測試。

軟件方面

  1. 權限檢查
    • 確保當前用戶對 /dev/ttyS3 端口有足夠的讀寫權限。在龍芯系統的終端中,使用命令 ls -l /dev/ttyS3 查看端口權限。如果權限不足,可通過 sudo chmod 666 /dev/ttyS3 臨時賦予讀寫權限(不建議長期使用這種寬泛的權限設置,生產環境可通過添加用戶到 dialout 等相關組來解決權限問題,如 sudo usermod -a -G dialout your_username ,然后重新登錄)。
  2. 驅動檢查與更新
    • 確認串口設備的驅動程序已正確安裝。在龍芯系統中,可通過查看系統日志(一般在 /var/log 目錄下,如 dmesg 日志),搜索與串口設備相關的信息,看是否有驅動加載錯誤提示。
    • 如果驅動程序版本過舊,嘗試更新驅動。可到龍芯官方或設備制造商官網查找適用于龍芯平臺的最新驅動程序,按照說明進行安裝。
  3. 程序邏輯檢查
    • 檢查使用串口的應用程序代碼,確認打開串口的參數設置(如波特率、數據位、停止位、校驗位等)是否與串口設備實際設置一致。如果設置不匹配,會導致數據讀取異常。
    • 排查程序中是否存在多線程或異步操作對串口訪問的影響,確保對串口的讀寫操作是線程安全的,避免出現競爭條件導致數據讀取失敗。

import json
import time
import paho.mqtt.client as mqtt
import serial# 配置
MQTT_BROKER = "115.28.209.116"
MQTT_PORT = 1883
MQTT_USERNAME = "bkrc"
MQTT_PASSWORD = "88888888"
CLIENT_ID = "*************"
DEVICE_ID = "*************"TOPIC_UP = f"device/{DEVICE_ID}/up"
TOPIC_DOWN = f"device/{DEVICE_ID}/down"SERIAL_PORT = "COM4"
BAUDRATE = 115200
TIMEOUT = 1# 連接成功回調
def on_connect(client, userdata, flags, reason_code, properties):if reason_code == 0:print("已連接到MQTT服務器")client.subscribe(TOPIC_DOWN)else:print(f"連接失敗,錯誤碼:{r

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908367.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908367.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908367.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于langchain的簡單RAG的實現

閑來無事,想研究一下RAG的實現流程,看網上用langchain的比較多,我自己在下面也跑了跑,代碼很簡單,以次博客記錄一下,方便回顧 langchain LangChain 是一個基于大型語言模型(LLM)開發…

視頻監控平臺建設方案

第三方視頻監控平臺是整合視頻監控、門禁、報警等多業務的安防軟件系統,具備兼容性、開放性、多業務整合和多級聯網能力。其核心價值在于兼容友商編解碼設備(如 IPC、DVR)、整合第三方子系統(如報警聯動)、支持多級多域架構(適應平安城市等大規模場景)及提供集中存儲方案…

天機學堂(學習計劃和進度)

經過前面的努力,我們已經完成了《我的課程表》相關的功能的基礎部分,不過還有功能實現的并不完善。還記得昨天給大家的練習題嗎?《查詢我正在學習的課程》,在原型圖中有這樣的一個需求: 我們需要在查詢結果中返回已學習…

軟件項目管理(3) 軟件項目任務分解

一、相關概念 1.任務分解的方法和步驟 (1)方法 模板參照方法:參照有標準或半標準的任分解結構圖類比方法:任務分解結構圖經常被重復使用,具有相似性自頂向下方法:一般->特殊,演繹推理從大…

Vite 雙引擎架構 —— Esbuild 概念篇

Vite 底層采用 雙引擎架構,核心構建引擎是 Esbuild 和 Rollup,二者在開發和生產環境中分工協作,共同實現高性能構建。不可否認,作為 Vite 的雙引擎之一,Esbuild 在很多關鍵的構建階段(如依賴預編譯、TS 語法轉譯、代碼…

leetcode hot100 鏈表(二)

書接上回: leetcode hot100 鏈表(一)-CSDN博客 8.刪除鏈表的倒數第N個結點 class Solution { public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* currhead;int len0;while(curr){currcurr->next;len;}int poslen-n…

Compose Multiplatform 實現自定義的系統托盤,解決托盤亂碼問題

Compose Multiplatform是 JetBrains 開發的聲明式 UI 框架,可讓您為 Android、iOS、桌面和 Web 開發共享 UI。將 Compose Multiplatform 集成到您的 Kotlin Multiplatform 項目中,即可更快地交付您的應用和功能,而無需維護多個 UI 實現。 在…

C++11 Move Constructors and Move Assignment Operators 從入門到精通

文章目錄 一、引言二、基本概念2.1 右值引用(Rvalue References)2.2 移動語義(Move Semantics) 三、移動構造函數(Move Constructors)3.1 定義和語法3.2 示例代碼3.3 使用場景 四、移動賦值運算符&#xff…

Linux配置yum 時間同步服務 關閉防火墻 關閉ESlinux

1、配置yum 1.1、Could not resolve host: mirrorlist.centos.org; 未知的錯誤 https://blog.csdn.net/fansfi/article/details/146369946?fromshareblogdetail&sharetypeblogdetail&sharerId146369946&sharereferPC&sharesourceRockandrollman&sharefr…

使用 uv 工具快速部署并管理 vLLM 推理環境

uv:現代 Python 項目管理的高效助手 uv:Rust 驅動的 Python 包管理新時代 在部署大語言模型(LLM)推理服務時,vLLM 是一個備受關注的方案,具備高吞吐、低延遲和對 OpenAI API 的良好兼容性。為了提高部署效…

基于sqlite的任務鎖(支持多進程/多線程)

前言 介紹 任務鎖,在多進程服務間控制耗時任務的鎖,確保相同id的耗時任務同時只有一個在執行 依賴 SqliteOp,參考這篇文章 https://blog.csdn.net/weixin_43721000/article/details/137019125 實現方式 utils/taskLock.py import timefrom utils.SqliteOp import Sqli…

html表格轉換為markdown

文章目錄 工具功能亮點1.核心實現解析1. 剪貼板交互2. HTML檢測與提取3. 轉換規則設計 2. 完整代碼 在日常工作中,我們經常遇到需要將網頁表格快速轉換為Markdown格式的場景。無論是文檔編寫、知識整理還是數據遷移,手動轉換既耗時又容易出錯。本文將介紹…

IDEA 中 Undo Commit,Revert Commit,Drop Commit區別

一、Undo Commit 適用情況:代碼修改完了,已經Commit了,但是還未push,然后發現還有地方需要修改,但是又不想增加一個新的Commit記錄。這時可以進行Undo Commit,修改后再重新Commit。如果已經進行了Push&…

【Linux】Linux 進程間通訊-管道

參考博客:https://blog.csdn.net/sjsjnsjnn/article/details/125864580 一、進程間通訊介紹 1.1 進程間通訊的概念 進程通信(Interprocess communication),簡稱:IPC 本來進程之間是相互獨立的。但是由于不同的進程…

深度剖析 DeepSeek 開源模型部署與應用:策略、權衡與未來走向

在人工智能技術呈指數級發展的當下,大模型已然成為推動各行業變革的核心驅動力。DeepSeek 開源模型以其卓越的性能和靈活的開源特性,吸引了眾多企業與開發者的目光。如何高效且合理地部署與運用 DeepSeek 模型,成為釋放其巨大潛力的關鍵所在&…

第34次CCF-CSP認證真題解析(目標300分做法)

第34次CCF-CSP認證 矩陣重塑(其一)AC代碼及解析矩陣重塑(其二)AC代碼及解析貨物調度AC代碼及解析 矩陣重塑(其一) 輸入輸出及樣例: AC代碼及解析 1.線性化原矩陣 :由于cin的特性我們…

智能制造數字孿生全要素交付一張網:智造中樞,孿生領航,共建智造生態共同體

在制造業轉型升級的浪潮中,數字孿生技術正成為推動行業變革的核心引擎。從特斯拉通過數字孿生體實現車輛全生命周期優化,到海爾卡奧斯工業互聯網平臺賦能千行百業,數字孿生技術已從概念驗證走向規模化落地。通過構建覆蓋全國的交付網絡&#…

【技術】跨設備鏈路聚合的技術——M-LAG

原創:廈門微思網絡 M-LAG(Multichassis Link Aggregation Group)提供一種跨設備鏈路聚合的技術。M-LAG通過將兩臺接入交換機以同一個狀態和用戶側設備或服務器進行跨設備的鏈路聚合,把鏈路的可靠性從單板級提升到設備級。同時&…

AI健康小屋+微高壓氧艙:科技如何重構我們的健康防線?

目前,隨著科技和社會的不斷發展,人們的生活水平和方式有了翻天覆地的變化。 從吃飽穿暖到吃好喝好再到健康生活,觀念也在逐漸發生改變。 尤其是在21世紀,大家對健康越來越重視,這就不得不提AI健康小屋和氧艙。 一、A…

Python訓練營---Day44

DAY 44 預訓練模型 知識點回顧: 預訓練的概念常見的分類預訓練模型圖像預訓練模型的發展史預訓練的策略預訓練代碼實戰:resnet18 作業: 嘗試在cifar10對比如下其他的預訓練模型,觀察差異,盡可能和他人選擇的不同嘗試通…