在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    596

    瀏覽量

    27526
  • 終端
    +關注

    關注

    1

    文章

    1159

    瀏覽量

    30039
  • 串口
    +關注

    關注

    14

    文章

    1560

    瀏覽量

    77145
收藏 人收藏

    評論

    相關推薦

    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

    淺析串口通信的一些基本概念及常見問題

    下面先講串口通信的一些基本概念,術語。如果對串口通信比較熟悉的,就當復習復習,如果哪里講錯或不到位,也可以及時指出,當作塊交流交流。
    的頭像 發表于 11-11 11:17 ?6890次閱讀

    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 ?2510次閱讀
    關于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 ?1207次閱讀

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

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

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

    字符型顯示器的應用越來越普遍。熟悉一些字符型顯示器的使用顯得非常重要。我們還可以使用一些特殊字符
    的頭像 發表于 11-09 10:03 ?1724次閱讀
    <b class='flag-5'>字符</b>型LCD顯示器的應用和例程
    主站蜘蛛池模板: 国产福利午夜自产拍视频在线 | 97色伦人人| 97se狠狠狠狠狼亚洲综合网 | 亚洲专区一路线二 | 人人草人人插 | 人人爽人人看 | 免费国产黄网站在线观看视频 | 91极品女神私人尤物在线播放 | aaaaaaaaa在线观看 | 色多多入口 | 国产男人搡女人免费视频 | 成人精品人成网站 | 国产精欧美一区二区三区 | 国产精品久久久久久福利 | 六月婷婷七月丁香 | 中文字幕在线播放一区 | 福利99| 三级国产在线 | 性夜影院爽黄a免费视频 | 日本在线不卡免费 | 视频在线观看免费播放www | 亚洲伦理一区二区 | 人人精品久久 | 日本xxxx色视频在线观看 | 1024你懂的国产欧美日韩在 | 清朝荒淫牲艳史在线播放 | 国产叼嘿视频网站在线观看 | 天天干人人干 | 免费观看黄a一级视频日本 免费观看黄色网页 | 尻逼尻逼| 久久久午夜毛片免费 | 日本三级日本三级人妇三级四 | 国产精品久久久久久久久齐齐 | 亚洲综合色丁香婷婷六月图片 | 夜夜夜夜夜夜夜工噜噜噜 | 1024国产欧美日韩精品 | 免费观看四虎精品成人 | 国产特黄特色的大片观看免费视频 | 欧美一区二区三区在线 | 天天色综合天天 | 1000部禁片黄的免费看 |