物聯網開發筆記——嵌入式開發之Linux系統中輸入輸出

2020-12-05 樂創iot

前言

我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。

第四節物聯網開發筆記——嵌入式開發之Linux系統中C程序的編譯與調試

第五節物聯網開發筆記——嵌入式開發之Linux系統中C語言數據類型

第六節物聯網開發筆記——嵌入式開發之Linux系統中C語言常量

第七節物聯網開發筆記——嵌入式開發之Linux系統中C語言變量

第八節物聯網開發筆記——嵌入式開發之Linux系統中C運算符

嵌入式開發學習C語言打下基礎。本節介紹《Linux系統中C語言輸入輸出》。

1 字符輸出函數的用法

C語言無I/O語句,I/O操作由函數實現。在#include <stdio.h>。

字符串輸出函數:格式:putchar(c)

參數:c為字符常量、變量或表達式

功能:把字符c輸出到顯示屏上

返回值:正常,為顯示的代碼值。

in_out/putchar.c例子:

putchar.c例子

2 格式輸出函數的用法

格式輸出函數:格式:printf(「格式控制串」, 輸出表)

功能:按指定格式向顯示器輸出數據

輸出表:要輸出的數據

格式控制串:包含兩種信息--格式說明:%[修飾符]格式字符,用於指定的輸出格式

--普通字符:原樣輸出

註:格式字符:

格式字符

in_out/printf.c例子:

printf.c例子

附加格式說明符

附加格式說明符

in_out/printf1.c例子:

printf1.c例子

in_out/printf2.c例子:

printf2.c例子

in_out/printf3.c例子:

printf3.c例子

3 字符輸入函數的用法

字符串輸入函數:格式:getchar()

功能:從鍵盤讀一字符

返回值:正常,返回讀取的代碼值。出錯或者鍵盤輸入,返回-1(ctrl d)。

in_out/getchar.c例子:

getchar.c例子
getchar.c例子

4 格式輸入函數的用法

格式:scanf(「格式控制串」, 地址表)

功能:按指定格式從鍵盤讀入數據,存入地址表指定

--存儲單元中,並按回車鍵結束

--返回值:正常,返回輸入數據個數

--地址表:變量的地址,常用取地址運算符&

格式輸入函數scanf支持的格式字符:

格式輸入函數scanf支持的格式字符

in_out/scanf.c例子:

scanf.c例子

格式輸入函數scanf支持的格式字符可以帶以下修飾符:

格式輸入函數scanf支持的格式字符可以

in_out/scanf.c 年月日例子:

scanf.c 年月日例子

修改後

修改後

in_out/scanf2.c 例子:

用「%c」格式符時,回車空格和轉義字符作為有效字符輸入

scanf2.c 例子

註:格式輸入函數,輸入數據時,遇到以下情況認為該數據結束:

遇空格,TAB或回車;遇非法輸入;遇寬度結束;

5 處理輸入函數留下垃圾

使用輸入函數可能會留下垃圾。

在in_out/scanf2.c 例子:

如回車 ASCII為10,空格為ASCII為32

方法1:用getchar()清除

in_out/scanf3.c 例子:

scanf3.c 例子

方法2:用格式串空格(「 %c」)或「%*c」來「吃掉」

in_out/scanf4.c 例子:

scanf4.c 例子
scanf4.c 例子

6 字符串輸入函數的用法

字符串輸入函數gets

格式:char *gets(char *s)

功能:從鍵盤輸入一以回車結束的字符串放入字符串數組中,並自動加』\0』。

--輸入串長度應小於字符數組維數

--與scanf函數不同,gets函數並不以空格作為字符串輸入結束的標誌。

in_out/gets.c 例子:

gets.c 例子

註:空格截止停止

7 字符串輸出函數的用法

字符串輸入函數puts

格式:int puts(const char *s)

功能:向顯示器輸出字符串(輸出完,換行)

in_out/puts.c 例子:

puts.c 例子

結果:

結果

請大家關注點讚轉發,謝謝!

相關焦點

  • 編程嵌入式信號處理背板的開發設計
    C40DSP含有兩組外部總線資源和6個高速通信口,可方便地進行多DSP擴展,以提高系統信號處理的性能。在對Virtex系列FPGA進行充分理解和研究的基礎上,結合對XC4000系列FPGA和DSP背板開發設計經驗,研製出了基於XCV200/300PQFP240和TMS320C40的可編程嵌入式高速信號處理背板。
  • 十年資深嵌入式大神:教你真正好學的嵌入式開發學習路線
    想學會linux?那麼這份嵌入式linux學習路線分享給大家。2、數據結構之隊列、棧 3、數據結構之樹、圖 4、算法之各種排序(選擇法、冒泡法、插入法等) 5、遞歸 6、算法之二分查找 2、嵌入式設備及GUI開發
  • FLASH K9F1G08U0M在MSP430F149嵌入式系統中的應用
    考慮到本系統有微體積、低功耗的要求,在此選用MSP430F149,它具有60KB Flash Memory、2kb RAM、有8個通道採樣率為200K的12位A/D轉換器、硬體乘法器、2個帶有大量捕獲/比較寄存器的16位定時器、看門狗等,為系統的進一步開發擴展提供了良好的基礎,特別適用於較複雜的系統開發。
  • 物聯網與網際網路的區別
    而在網際網路的體系架構中是沒有感知層的。物聯網需要通過遍布各地的來感知並採集用戶或工業數據,網際網路不需要這個過程,網際網路是只包含兩層,網絡層將各個計算通過網絡連接起來,而應用層主要是通過系統支撐起各種應用。   2、作業系統   在物聯網應用領域會經常聽到一個詞:「嵌入式作業系統」。
  • UML軟體分析與建模技術在嵌入式指紋門禁系統中的應用研究
    它需要不同技術背景的人共同開發.而傳統的嵌入式軟體分析與設計方法嚴重脫節,開發過程沒有—個確定的統一的標準,這使得產品形成的每一個過程人為因素影響嚴重.此外,分析設計的結果不能在開發類似項目或產品時重用.以上幾個問題成為多年來制約嵌入式系統發展的主要瓶頸,使得大部分嵌入式軟體的開發工作變得十分困難甚至無法進行.
  • 意法半導體推出首款STM32無線微控制器模塊 提升物聯網產品開發效率
    意法半導體推出首款STM32無線微控制器模塊 提升物聯網產品開發效率 橫跨多重電子應用領域的全球領先的半導體供應商意法半導體推出一個新的加快物聯網產品上市的解決方案,該方案可利用現成的微型STM32無線微控制器(MCU)模塊加快基於Bluetooth
  • WinCE下基於ArcGIS Mobile實現的嵌入式地圖
    很多場合的嵌入式應用,需要涉及地圖操作。目前嵌入式GIS產品國外主要有ESRI和MapInfo,國內主要有超圖、靈圖等[1]。 本文介紹在某基於WinCE 6.0作業系統的車載信息終端上嵌入式地圖的實現方法。
  • Python開發簡單爬蟲【學習資料總結】
    ;另一方面,會將新的URL補充進URL管理器,若有URL管理器中含有新的URL,則重複上述步驟,直到爬取完所有的URL 6、最後,調度器會調動應用的方法,將價值數據輸出到需要的格式。
  • Linux系統top命令中的io使用率,很多人都誤解了它的具體含義
    最近在做連續數據流的緩衝系統,C語言代碼實現後,粗略測試了下,功能上應該沒有問題。那麼,接下來就該測試性能了。輸入 top 命令,的確可以看到一系列 cpu 使用率,其中一個值得注意的子項就是 io 使用率了,如下圖:
  • 嵌入式系統常用接口規範
    一、引言本文引用地址:http://www.eepw.com.cn/article/201610/305641.htm嵌入式系統的硬體除了核心的微處理器之外就是外圍器件和接口。接口技術在嵌入式系統設計處於如此重要的位置,是嵌入式系統設計師硬體部分的重要考試範圍。目前嵌入式系統中的接口五花百門,每個接口都可以寫成一本厚厚的書。
  • 蝸牛學院:PBET-7.0版課程詳解之測試開發!
    蝸牛學院一開始就將測試方向的人才培養定位於「測試開發」,雖然測試開發相對於普通的軟體測試培訓周期會更長一些,學習難度也會更高一點,但與之對應的薪資會更高,發展前景也會更好。並且,隨著人工智慧和網際網路技術的飛速發展,未來不懂任何開發技術的測試人員,早晚都會被行業淘汰。
  • 基於MC9328MX1嵌入式最小系統的設計
    儘管嵌入式處理器晶片種類多,引腳繁雜,但根據它們各自的功能特點,因該分布是有規律的,在嵌入式最小硬體系統設計中,要注意區分處理器晶片引腳的類型,仔細分析研究關鍵引腳作用,才能保障最小系統的正常運行。MC9328MX1採用MAPBGA封裝,共有256引腳,MC9328MX1的引腳可分為電源、接地、輸入(I)、輸出(O)、輸入/輸出(I/O)5類。
  • Eyeris與德州儀器合作 開發座艙監控系統
    原標題:Eyeris與德州儀器合作 開發座艙監控系統   據外媒報導,座艙傳感視覺AI技術公司Eyeris Technologies
  • 智能廣告系統_app開發方案
    今天小編為大家介紹廣告大屏app開發方案—智能廣告系統APP,很容易對樓層的電梯,商場的屏幕廣告進行管理和發布上架下架,在方便屏幕管理同時也快速為創造經濟收入!一、廣告發布平臺app_智能廣告系統_app開發方案智能廣告系統又稱廣告發布平臺app,通過手機管理端可以投放廣告到終端硬體,硬體包括:電視、電梯投影、智能盒子、LED屏等。
  • ARM :開放的mbed平臺助力物聯網行業應用創新
    雖然目前物聯網平臺眾多,但ARM mbed也有其獨特之處,主要表現在四個方面:  1.利用ARM mbed平臺方案應用簡單易開發。  mbed本身有幾十家不同的晶片和設備廠家,100多種不同的開發板,開發人員相對具有較高的物聯網設備開發基礎。
  • 百度網盤出linux版本了,ubuntu系統下安裝試用
    現在手頭沒有安裝中標麒麟或者Fedora, CentOS之類的linux系統。就在Ubuntu的系統進行相關的安裝試用。直接在百度網盤官網就可以下載到linux安裝包,安裝包為RPM.打開ubuntu的終端,輸入如下的指令#sudo apt-get install alien安裝上面的軟體完成上面的安裝軟體,進入下載了RPM百度網盤軟體包的目錄,使用下面的命令開始進行百度網盤rpm包轉換為ubuntu系統可安裝的DEB安裝包
  • 中國積極培育 北鬥系統應用開發
    新華社北京6月16日電(記者 楊維漢 程卓)國務院新聞辦公室16日發表的《中國北鬥衛星導航系統》白皮書指出,中國積極培育北鬥系統的應用開發,打造由基礎產品、應用終端、應用系統和運營服務構成的北鬥產業鏈,持續加強北鬥產業保障、推進和創新體系,不斷改善產業環境,擴大應用規模,實現融合發展,提升衛星導航產業的經濟和社會效益。
  • ...地平線聯合Linaro推出AIoT開發平臺BOOTPRINT X2 開發套件
    但在相關方案的開發過程中,開發者卻仍舊面臨開發周期長、算法適配調優困難等方面的痛點。究其原因,缺乏一款能夠跟商業應用方案完整對接、基於行業開放標準且擁有完整開發工具鏈的開發平臺是關鍵問題所在。BOOTPRINT X2開發套件擁有豐富的感知接口,在視覺接口方面,支持1080p解析度的雙攝像頭輸入,並且可以支持對稱雙目,或紅外/可見光異構組合。在語音接口方面,支持多達6MICs陣列輸入。