成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

ZLG嵌入式筆記(連載22) | 為什么你的串口總是丟一些特殊字符?

02/07 11:34
1110
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

導讀

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

Linux下串口設備名稱一般為 "/dev/ttySn",n是數(shù)字,若串口是 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規(guī)范中定義的標準接口,表示終端設備(包括虛擬終端,串口等)。終端有 3 種工作模式,分別為規(guī)范模式(canonical mode)、非規(guī)范模式(non-canonical mode)和原始模式(raw mode)。

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

1. 規(guī)范模式

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

2. 非規(guī)范模式

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

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

3. 原始模式

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

M3562 Cortex?-A53核心板

四核Cortex-A53

1.8GHz主頻

低成本3568方案

參考價格:288元起

致遠電子

致遠電子

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄
新丰县| 寿阳县| 天水市| 巍山| 乌鲁木齐县| 多伦县| 广饶县| 普格县| 花垣县| 阳城县| 北川| 汕头市| 十堰市| 东乌| 白水县| 汉源县| 曲麻莱县| 无为县| 本溪| 永定县| 忻州市| 泗水县| 利津县| 宣武区| 霍山县| 荥经县| 滨州市| 揭阳市| 左云县| 高阳县| 大田县| 华宁县| 丽江市| 湟中县| 梓潼县| 牟定县| 莆田市| 鄂托克前旗| 株洲市| 洛浦县| 会昌县|