女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

為什么你的串口總是丟一些特殊字符?

ZLG致遠電子 ? 2025-02-06 13:26 ? 次閱讀

導讀

嵌入式開發物聯網應用中,Linux系統的串口通信至關重要。本文將簡單介紹Linux下串口設備的命名規則和termios結構體,并解析終端的三種工作模式,幫助開發者更好地掌握Linux串口編程

Linux下串口設備名稱一般為"/dev/ttySn",n是數字,若串口是 USB 擴展的,則串口設備文件命名多為/dev/ttyUSBn。串口是一個終端設備,在Linux中用 termios結構體來描述:

struct termios { tcflag_t c_cflag; /* 控制標志 */ tcflag_t c_iflag; /* 輸入標志 */ tcflag_t c_oflag; /* 輸出標志 */ tcflag_t c_lflag; /* 本地標志 */ tcflag_t c_cc[NCCS]; /* 控制字符 */ };

termios是在POSIX規范中定義的標準接口,表示終端設備(包括虛擬終端,串口等)。終端有 3 種工作模式,分別為規范模式(canonical mode)、非規范模式(non-canonical mode)和原始模式(raw mode)。

c_lflag 中設置 ICANNON 標志來定義終端的三種模式:規范模式、非規范模式和原始模式。

1. 規范模式

規范模式下所有的輸入都是基于行進行處理的。在用戶輸入一個行結束符(回車符、EOF等)之前,系統調用read()函數讀不到用戶輸入的任何字符。除了EOF之外的行結束符(回車符等)和普通字符一樣都會被read()函數讀取到緩沖區之中。在規范模式中,行編輯是可行的,而且一次調用read()函數最多只能讀取一行數據。

2. 非規范模式

非規范模式所有的輸入是即時有效的,不需要用戶另外輸入行結束符,而且不可進行行編輯。在非規范模式下,對參數 MIN(c_cc[VMIN])和 TIME(c_cc[VTIME])的設置決定read()函數的調用方式。設置可以有 4 種不同的情況。

  • VMIN=0和VTIME=0:read()函數立即返回。若有可讀數據,則讀取數據并返回被讀取的字節數,否則讀取失敗并返回0。
  • VMIN >0和 VTIME =0:read()函數會被阻塞直到 VMIN 個字節數據可被讀取。
  • VMIN =0和 VTIME >0:只要有數據可讀或者經過VTIME 個1/10秒的時間,read()函數則立即返回,返回值為被讀取的字節數。如果超時并且未讀到數據,則 read()函數返回0。
  • VMIN >0和 VTIME >0:當有VMIN 個字節可讀或者兩個輸入字符之間的時間間隔超過VTIME個1/10秒時,read()函數才返回。因為在輸入第一個字符之后系統才會啟動定時器,所以在這種情況下,read()函數至少讀取一個字節之后才返回。

3. 原始模式

原始模式是一種特殊的非規范模式。在原始模式下,所有的輸入數據以字節為單位被處理。在這個模式下,終端是不可回顯的,而且所有特定的終端輸入/輸出控制處理不可用。通過調用 cfmakeraw()函數可以將終端設置為原始模式。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    603

    瀏覽量

    28301
  • 終端
    +關注

    關注

    1

    文章

    1193

    瀏覽量

    30631
  • 串口
    +關注

    關注

    14

    文章

    1582

    瀏覽量

    78613
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    labview串口通信的一些心得

    、由于通常情況下LabVIEW串口VI接收或發送的都是字符串(Normal),這里是指串口通信中,如果不是在串口通信,我們可以做個小小的驗證,在前面板中,
    發表于 12-27 11:58

    labview串口通信的一些心得

    、由于通常情況下LabVIEW串口VI接收或發送的都是字符串(Normal),這里是指串口通信中,如果不是在串口通信,我們可以做個小小的驗證, 在前面板中,
    發表于 11-30 19:47

    CC2540ble 的串口通信總是數,為什么?

    CC2540 ble 的串口通信總是數,為什么?我使用的是ble 1.4.1協議棧。直接使用里面的串口程序,總是
    發表于 03-11 15:07

    關于串口一些分享

    串口是學習單片機重要的項,用來顯示數據和一些簡單的控制命令非常方便,經過筆者這幾天的測試,總結出了一些需要注意的地方:(以下代碼全部基于單片機STM32F407實現)1、關于發送除非
    發表于 10-13 10:43

    LABVIEW讀取串口返回命令,字符丟失

    各位大神你們好,采用LABVIEW串口與下位機MCU通信,每60sMCU回復個CHARGE_OVER#的字符串,LABVIEW串口接受該字符
    發表于 08-31 17:13

    求助!!LABVIEW讀取串口返回命令,字符丟失

    各位大神你們好,采用LABVIEW串口與下位機MCU通信,每60sMCU回復個CHARGE_OVER#的字符串,LABVIEW串口接受該字符
    發表于 09-04 09:10

    GD32F310開發板串口一些特殊功能介紹

    串口主要用于通信和調試信息輸出,今天仔細觀察GDF310的數據手冊發現一些特殊功能:1、自動波特率檢測;2、數據發送/接受,高位在前/后;3、數據位反轉;4、TX/RX管腳交換。針對以上的5個
    發表于 09-22 15:40

    CH582如果打印一些特殊功能按鍵應該怎么修改呢?

    使用CH582開發板燒錄HostU2Enum代碼后,USB2插入鍵盤,使用串口打印鍵值,音量加減等一些特殊功能按鍵沒有打印出,請問官方如果打印這些特殊功能按鍵應該具體怎么修改呢?
    發表于 10-09 07:19

    PCB設計中的一些特殊規則及抗干擾設計的要求概述

    本文通過幾個典型的例子分析了各種干擾產生的途徑和原因,介紹了PCB(Printing Circuit Board)設計中的一些特殊規則及抗干擾設計的要求。
    的頭像 發表于 04-30 19:26 ?5970次閱讀

    51單片機串口通信的一些基礎知識免費下載

    本文檔的主要內容詳細介紹的是51單片機串口通信的一些基礎知識免費下載。
    發表于 08-21 17:31 ?9次下載
    51單片機<b class='flag-5'>串口</b>通信的<b class='flag-5'>一些</b>基礎知識免費下載

    關于C語言的一些特殊功能介紹

    C語言之所以那么受歡迎,除了C語言歷史悠久之外,還有它具有一些編程語言沒有的功能。那么,今年我們就來了解下C語言的一些特殊功能。
    的頭像 發表于 08-18 15:31 ?2704次閱讀
    關于C語言的<b class='flag-5'>一些</b><b class='flag-5'>特殊</b>功能介紹

    STM32中遇到的問題--關于串口一些常見問題

    在單片機的開發過程中,最常用的外設就是串口了,是用來進行bug糾錯、log輸出的常用工具,也是用來與外部通訊的常見協議之。 但是在使用串口的過程中難免會遇到一些問題,下面就我在工作遇
    發表于 12-24 18:51 ?2次下載
    STM32中遇到的問題--關于<b class='flag-5'>串口</b>的<b class='flag-5'>一些</b>常見問題

    格式化字符串常量f-strings一些不常見的特性

    【導語】:本文介紹了“格式化字符串常量”f-strings一些不常見的特性,包括:格式化日期和時間、同時打印變量名和變量值等,嵌套使用f-strings等,此外與其他格式化字符串的方法相比,f-strings的速度更快,因此,學
    的頭像 發表于 08-15 12:00 ?1356次閱讀

    一些封裝中沒有串口,或者串口已經被用作其他用途,要如何輸出log?

    一些封裝中沒有串口,或者串口已經被用作其他用途,要如何輸出log? 在一些封裝中,例如在裸機程序或者嵌入式系統中,因為種種原因,可能不存在串口
    的頭像 發表于 10-31 14:37 ?756次閱讀

    字符型LCD顯示器的應用和例程

    字符型顯示器的應用越來越普遍。熟悉一些字符型顯示器的使用顯得非常重要。我們還可以使用一些特殊字符
    的頭像 發表于 11-09 10:03 ?2143次閱讀
    <b class='flag-5'>字符</b>型LCD顯示器的應用和例程