|
千里之行,始于足下
Windows XP下超級終端與嵌入式開發(fā)板交互的一些技巧一、簡介超級終端是Windows操作系統(tǒng)自帶的一個(gè)通用的串行交互軟件,可以通過這個(gè)工具對路由器交換機(jī)等進(jìn)行配置。使用調(diào)制解調(diào)器、一條零調(diào)制解調(diào)電纜或以太網(wǎng)連接,再調(diào)用此程序能夠連接到其他計(jì)算機(jī)、Telnet 站點(diǎn)、公告板系統(tǒng) (BBS)、聯(lián)機(jī)服務(wù)和主機(jī)。我們可以用它來調(diào)試電路是否可行。 嵌入式開發(fā)板基本都有串口,可以通過超級終端與嵌入式系統(tǒng)的串口交互,使超級終端成為嵌入式系統(tǒng)的“顯示器”。
二、超級終端的原理 超級終端的原理并不復(fù)雜,它是將用戶的輸入隨時(shí)發(fā)向串口(采用TCP協(xié)議時(shí)是發(fā)往網(wǎng)口,這里只說串口的情況),但并不顯示輸入。它顯示的是從串口接收到的字符。所以,嵌入式系統(tǒng)的相應(yīng)程序應(yīng)該完成的任務(wù)便是:
三、超級終端常用操作
超級終端應(yīng)用比較簡單,和一般的串口軟件差不多。 四、常見問題和解決辦法1、把超級終端最大化時(shí),那個(gè)實(shí)際屏幕還是沒有變化。 原因:"超級終端"的終端屏幕大小由所使用的字體大小決定。它將自行顯示為 24 行,每行為 80 或 132 個(gè)字符,字體為所選字體。
6、用CTRL+V不能將數(shù)據(jù)粘貼到終端屏幕。 五、回車符和換行符區(qū)別首先介紹一下“回車”(carriage return)和“換行”(line feed)這兩個(gè)概念的來歷和區(qū)別。在計(jì)算機(jī)還沒有出現(xiàn)之前,有一種叫做電傳打字機(jī)(Teletype Model 33)的玩意,每秒鐘可以打10個(gè)字符。但是它有一個(gè)問題,就是打完一行換行的時(shí)候,要用去0.2秒,正好可以打兩個(gè)字符。要是在這0.2秒里面,又有新的字符傳過來,那么這個(gè)字符將丟失。于是,研制人員想了個(gè)辦法解決這個(gè)問題,就是在每行后面加兩個(gè)表示結(jié)束的字符。一個(gè)叫做“回車”,告訴打字機(jī)把打印頭定位在左邊界;另一個(gè)叫做“換行”,告訴打字機(jī)把紙向下移一行。這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。 后來,計(jì)算機(jī)發(fā)明了,這兩個(gè)概念也就被般到了計(jì)算機(jī)上。那時(shí),存儲器很貴,一些科學(xué)家認(rèn)為在每行結(jié)尾加兩個(gè)字符太浪費(fèi)了,加一個(gè)就可以。于是,就出現(xiàn)了分歧:
一個(gè)直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打 開的話,所有文字會變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會多出一個(gè)^M符號。一些常見的轉(zhuǎn)義字符如下圖: 需要注意的是:在Windows系統(tǒng)中回車鍵被當(dāng)做\r\n 的組合來使用,當(dāng)我們從鍵盤輸入回車鍵時(shí),Windows系統(tǒng)會把回車鍵當(dāng)做\r\n 來處理,Unix系統(tǒng)只會當(dāng)做\n 來處理,不管在什么系統(tǒng)中,都可以用\n來作為一行輸入結(jié)束的標(biāo)記,只是在編程時(shí)我們需要注意,在Windows系統(tǒng)中我們會讀到\r 這個(gè)字符,我們必須把\r和正常輸入的字符區(qū)別開來。
Windows與Unix文件格式是不同的,問題一般就是出在/r/n問題上。回車(CR)和換行(LF)符都是用來表示“下一行”的。而標(biāo)準(zhǔn)沒有規(guī)定要使用哪一個(gè)。于是產(chǎn)生了三種不同的用法:和windows采用回車+ 換行(CR+LG)表示下一行(亦即所謂的PC格式),UNIX采用換行符(LF)表示下一行,MAC機(jī)采用回車符(CR)表示下一行。當(dāng)在不同的系統(tǒng)間傳遞文件,就要涉及格式的轉(zhuǎn)換。
兩種文件格式之間的轉(zhuǎn)化
Unix -> Windows:'\n' -> '\r\n'
只要在Unix文件中出現(xiàn)的'\n'的之前加入一個(gè)'\r'字符就可以了
Unix <- Windows:'\n' <- '\r\n'
六、超級終端中關(guān)于回車符合換行符的一些設(shè)置以換行符作為發(fā)送行末尾(ASCII碼發(fā)送) (超級終端 ->屬性 ->設(shè)置 ->ASCII碼設(shè)置 ->ASCII碼發(fā)送:以換行符作為發(fā)送行末尾),若勾選了,則發(fā)送的數(shù)據(jù)中有0D(\r)的,會在0D后添加0A(\n)。
以換行符作為傳入行末尾(ASCII碼接收) (超級終端 ->屬性 ->設(shè)置 ->ASCII碼設(shè)置 ->ASCII碼發(fā)送:以換行符作為傳入行末尾),若勾選了,則接收的數(shù)據(jù)中有0D(\r)的,會在0D后添加0A(\n)。 此外,還有一點(diǎn)需要注意,我們在使用printf輸出信息時(shí),比如“printf("ce123' CSDN blog.\n")”,這里面的\n是回車換行,因此通過串口將該字符串發(fā)送到超級終端時(shí)要在\n后面或者后面增加一個(gè)\r。 |
|
|