1. 程式人生 > >Windows下SecureCRT串列埠終端顯示

Windows下SecureCRT串列埠終端顯示

在學習《朱有鵬老師嵌入式linux核心課程》的《1.16.ARM裸機第十六部分-shell原理和問答機制引入》的《1.16.3.shell實戰2-將簡易shell移植到開發板中》的部分的時候,通過看對應的“3.shell_x210”的程式程式碼總結出下面SecureCRT終端的串列埠通訊過程中的顯示步驟:

首先必須明白一個知識點:

        在不同作業系統下鍵盤上的回車按鍵所代表的含義是不同的,Unix系統裡,每行結尾只有“<換行>”,即“\n”;Windows系統裡面,每行結尾是“<換行><回車>”,即“\n\r”;Mac系統裡,每行結尾是“<回車>”。一個直接後果是,Unix/Mac系統下的檔案在Windows裡開啟的話,所有文字會變成一行;而Windows裡的檔案在Unix/Mac下開啟的話,在每行的結尾可能會多出一個^M符號。

(上面紅色部分字型摘自http://blog.csdn.net/silyvin/article/details/7275037)。

(以下情況分析都是對應本課程學習的時候對應的程式碼,下面的總結也只是在我現在學習程度下的總結,後續學習如果有新的發現還會更正)

情況一: S5PV210的串列埠通訊模組傳送字串給SecureCRT終端

       每當SecureCRT串列埠中斷接收到一個字元的時候,就會顯示到Windows作業系統下的標準輸出(即螢幕上),並不是快取一個字串之後統一輸出(並不需要等待‘\n\r’,或者‘\0’)。而且接收並在螢幕上顯示字元之後會自動將顯示游標移動到下一個位置(即每次呼叫putchar之後,游標就會自動移動一個單位)。

      需要注意的是如果接收到控制字元(如‘\r’回車,‘\n’換行,‘\b’退格-->對應鍵盤上的backspace按鍵),不會顯示,而是會控制顯示游標進行相應的移動。

情況二:SecureCRT終端傳送字串給S5PV210的串列埠通訊模組

      當從鍵盤中敲入一個字元,此時SecureCRT終端會立即將此字元傳送給S5PV210的串列埠通訊模組即不快取(即不是等待按回車鍵之後才將資料傳送過去)。另外,鍵入的字元將不會顯示在SecureCRT終端之上,如果想顯示,需要利用S5PV210的串列埠來達到回顯功能。,即在char *gets(char *p)中呼叫putchar(ch)(ch是要回顯的字元);

(正常情況下,當在鍵盤上按下一個按鍵的時候,是不能夠在螢幕上顯示,輸入就是輸入,輸出就是輸出,憑什麼
按下一個按鍵就需要將按下的是什麼顯示在螢幕上呢,因此如果要實現回顯功能必須程式設計師幫助實現,我們使用的PC機之所以按下某一個按鍵就能在螢幕上顯示是因為有對應程式的支援,並不是天生就能回顯的)。

      在回顯過程中要實現換行功能一定要注意Windows系統裡面,每行結尾是“<換行><回車>”。