微控制器printf的換行問題

2021-10-05 14:26:45 字數 756 閱讀 5321

因為串列埠軟體是在windows系統中的,而printf是在微控制器中執行的,所以我們平時所認為的換行,是需要\r\n兩個符號的連用

\r 是回車 return 返回到一行的頭部(和home鍵的效果相同)

\n是換行 newline 跳到下一行,列位置不變

\r\n連用,可達到跳到下一行行首的位置

windows下,ascii文字編輯器中,按一下回車產生兩個字元的響應

引用: 在計算機還沒有出現之前,有一種叫做電傳打字機(teletype model 33)的玩意,每秒鐘可以打10個字元。但是它有乙個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。

於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。乙個叫做「回車」,告訴打字機把列印頭定位在左邊界;另乙個叫做「換行」,告訴打字機把紙向下移一行。

這就是「換行」和「回車」的來歷,從它們的英語名字上也可以看出一二。

後來,計算機發明了,這兩個概念也就被般到了計算機上。那時,儲存器很貴,一些科學家認為在每行結尾加兩個字元太浪費了,加乙個就可以。於是,就出現了分歧。

unix系統裡,每行結尾只有「《換行》」,即「\n」;windows系統裡面,每行結尾是「《換行》《回車 >」,即「\n\r」;mac系統裡,每行結尾是「《回車》」。乙個直接後果是,unix/mac系統下的檔案在windows裡開啟 的話,所有文字會變成一行;而windows裡的檔案在unix/mac下開啟的話,在每行的結尾可能會多出乙個^m符號。

微控制器 printf 移植過程

在網上看到有人在微控制器上使用printf函式,心癢癢,也想用,看了網上的一些方法,大都是51微控制器的,說的是在51微控制器編譯軟體庫中有自帶printf函式,也有自己實現 乙個自己的printf函式的,但是講的不詳細,看了好幾個部落格,東拼西湊,也在自己的 微控制器上弄出來了。1,先進行用到的知...

51微控制器的Printf使用方法

今天在群裡面有乙個提到51微控制器使用printf為什麼編譯通過了,但是沒有效果 這裡將我的筆記翻出來共享一下,這個實驗本身沒有太大的意義,主要是記錄51微控制器應該如何使用printf函式。實驗名稱 串列埠通訊之微控制器和pc計算梯形面積 mcu型號 stc12c5a60s2 12t模式 晶振 1...

51微控制器的Printf使用方法

實驗名稱 串列埠通訊之微控制器和pc計算梯形面積 mcu型號 stc12c5a60s2 12t模式 晶振 11.0592mhz 實驗內容 利用微控制器和pc機串列埠通訊的工作方式1 波特率可變 已經晶振為11.0592mhz 設定波特率為9600b s,結合定時器1的工作方式2 th1 0xfd,t...