嵌入式實現(xiàn)智能家居控制(三)、Linux編程

姓名:喻晗林? ? 學(xué)號:19020100277

轉(zhuǎn)自:https://blog.csdn.net/qq_39188039/article/details/83892066

【嵌牛導(dǎo)讀】近幾年來檐什,隨著人們對生活質(zhì)量要求的提升碴卧,對智能化需求的增長,智能家居逐漸成為很多人的選擇乃正,廣闊的市場需求使得大量物聯(lián)網(wǎng)技術(shù)涌入智能家居領(lǐng)域住册。隨著嵌入式系統(tǒng)在物聯(lián)網(wǎng)中廣泛運用,智能家居控制系統(tǒng)烫葬,對住宅內(nèi)的家用電器界弧、照明燈光進行智能控制,并實現(xiàn)家庭安全防范搭综,結(jié)合其他系統(tǒng)為住戶提供一個溫馨舒適垢箕、安全節(jié)能、先進高尚的家居環(huán)境兑巾,讓住戶充分享受到現(xiàn)代科技給生活帶來的方便與精彩条获。

【嵌牛鼻子】智能家居

【嵌牛提問】如何實現(xiàn)智能家居

【嵌牛正文】

編程環(huán)境:linux

編程語言:linux接口+C語言

嵌入式開發(fā)流程:

1.編寫工程

2.編譯工程

3.移植工程

4.測試工程

============編寫工程===========

使用編程軟件: npp

? ? 安裝方式:雙擊執(zhí)行文件----》下一步----》完成

? ? 1.1 打開npp軟件----》文件-----》新建文件

? ? 1.2 右擊新建文件----》另存為---->找到共享文件夾位置

? ? ? ? 保存為.c文件

? ? 1.3 建立模型

? ? ? ? int main(int argc,const char *argv[])

? ? ? ? {

? ? ? ? ? return 0;

? ? ? ? }

? ? 1.4 輸出語句

? ? ? ? 引號的最后\n? 1.在打印的時候自動換行輸出

? ? ? ? ? ? ? ? ? ? ? 2.才能顯示在開發(fā)板的屏幕上

? ? 1.5 保存? ctrl+s

=============編譯工程==========

使用交叉工具編譯鏈:

? ? ? ? 本地編譯:gcc(C語言) g++(c++語言)

? ? ? ? 開發(fā)板編譯:arm-linux-gcc

? ? 本地編譯:

? ? ? ? 1.gcc? + 文件名.c

? ? ? ? ? ? 生成一個可執(zhí)行文件a.out

? ? ? ? ? ? 執(zhí)行:./a.out

? ? ? ? 2.gcc? 文件名.c? -o? 文件名

? ? ? ? ? ? ? ? ? ? ? ? 指定生成

練習(xí):打印一下自己的中文名字在虛擬機上

注意三點:1.編譯的時候進入共享文件夾

? ? ? ? ? 2.注意警告和錯誤


==============移植工程===============

如何移植到arm開發(fā)板上去?

? 1.正確的鏈接開發(fā)板

? ? 電源線? 串口線? USB轉(zhuǎn)串口

? 2.使用 CRT串口軟件

? ? 1.解壓軟件CRT,解壓到當(dāng)前文件

? ? 2.雙擊SecureCRT.exe

? ? 3.配置協(xié)議

? 3.查看USB轉(zhuǎn)串口的com口是多少蒋歌?

? ? 使用驅(qū)動文件:

? ? ? ? 1.下載PL2303驅(qū)動

? ? ? ? 2.雙擊安裝

? ? ? ? 3.計算機----》管理----》設(shè)備管理器----》端口

? 4.打開CRT軟件配置協(xié)議

? ? 協(xié)議:serial

? ? 端口:根據(jù)第三步去看

? ? 波特率:115200

? 5.1.看不到終端帅掘,使用ctrl+c

? ? 2.重啟開發(fā)板? 復(fù)位鍵


? 6.使用cd 進入根目錄? cd /

? ? 使用命令df查看一下開發(fā)板的使用空間


下載到開發(fā)板

? 1.在使用編譯的時候使用 arm-linux-gcc

? ? arm-linux-gcc hello.c -o hello.c

? 2.下載文件的時候使用命令 rx 文件名

? ? ? ? ? 1.rx? 文件名

? ? ? ? ? 2.點擊傳輸-----》第三個選項-----》共享文件

? ? ? ? ? 3.找到要發(fā)送的文件----》發(fā)送


=============測試工程===============

? 1.修改文件權(quán)限

? ? chmod? 777 hello

? 2.執(zhí)行文件

? ? ./hello


火星文:選項----》會話選項----》外觀-----》字符編碼 utf-8----》確定


====================================

怎么樣在開發(fā)板上顯示滿江紅?

1.arm開發(fā)板是如何顯示顏色

? 讀數(shù)據(jù)? 是一行一行的

? 一個像素點? 4字節(jié)? 位數(shù)32


2.打開文件的操作? 使用函數(shù)

? 在linux中堂油,一切設(shè)備皆文件

? ? ? ? ? 硬件設(shè)備:我們使用的驅(qū)動文件

? 查看函數(shù)? 使用linux里面的man手冊

? man man 查看所有的手冊

? 1 Executable programs or shell commands? ? ? ? ? ? ? 內(nèi)核函數(shù)?

? 2 System calls (functions provided by the kernel)? ? 系統(tǒng)函數(shù)

? 3 Library calls (functions within program libraries)? C語言庫函數(shù)

2.1打開函數(shù)? open()

? ? ? #include <sys/types.h>

? ? ? #include <sys/stat.h>

? ? ? #include <fcntl.h>

? ? ? int open(const char *pathname, int flags);

? ? ? ? 返回值:成功 :返回一個文件描述符? 一個大于的零的數(shù)

? ? ? ? ? ? ? ? 失敗 :返回? -1


? ? ? ? 參數(shù):const char *pathname? -----》字符串類型的路徑名

? ? ? ? ? ? ? int flags? -----》權(quán)限

? ? ? ? ? ? ? ? ? ? O_RDONLY -------read-------只讀權(quán)限

? ? ? ? ? ? ? ? ? ? O_WRONLY -------write------只寫權(quán)限

? ? ? ? ? ? ? ? ? ? O_RDWR? ----read and write ----可讀可寫

? 2.2寫函數(shù)? write()

? ? ? #include <unistd.h>

? ? ? ssize_t write(int fd, const void *buf, size_t count);

? ? ? 返回值:成功? 返回寫入的字節(jié)數(shù)

? ? ? ? ? ? ? 失敗? 返回 -1


? ? ? 參數(shù):int fd? ? ? ? ? ? 文件的描述符

? ? ? ? ? ? const void *buf? 寫入文件的字節(jié)數(shù)的緩沖區(qū)

? ? ? ? ? ? size_t count? ? ? 寫入的緩沖區(qū)的大小

? 2.3關(guān)閉文件 close()

? ? #include <unistd.h>

? ? int close(int fd);

? ? ? 返回值:成功? 返回 0

? ? ? ? ? ? ? 失敗? 返回 -1

? ? ? 參數(shù):

? ? ? ? ? ? int fd? ? ? ? ? ? 文件的描述符

練習(xí):德國國旗和比利時國旗

==============顯示圖片=============

常見的圖片類型:jpg gif jpeg? bmp

一張24位位圖 :bmp

錯誤打印函數(shù)? perror

? #include <stdio.h>

? ? void perror(const char *s);

? ? 參數(shù):const char *s? 字符串

讀取函數(shù)? read()

? ? ? #include <unistd.h>

? ? ? ssize_t read(int fd, void *buf, size_t count);

? ? ? 返回:成功? 返回一個讀取的字節(jié)數(shù)

? ? ? ? ? ? 失敗? 返回 -1


? ? ? 參數(shù):int fd? ? ? ? ? 文件描述符

? ? ? ? ? ? void *buf? ? ? ? 讀的緩沖區(qū)

? ? ? ? ? ? size_t count? ? 讀的字節(jié)數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末修档,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子府框,更是在濱河造成了極大的恐慌吱窝,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迫靖,死亡現(xiàn)場離奇詭異院峡,居然都是意外死亡,警方通過查閱死者的電腦和手機系宜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門照激,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盹牧,你說我怎么就攤上這事俩垃。” “怎么了汰寓?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵吆寨,是天一觀的道長。 經(jīng)常有香客問我踩寇,道長,這世上最難降的妖魔是什么六水? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任俺孙,我火速辦了婚禮辣卒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘睛榄。我一直安慰自己荣茫,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布场靴。 她就那樣靜靜地躺著啡莉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旨剥。 梳的紋絲不亂的頭發(fā)上咧欣,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機與錄音轨帜,去河邊找鬼魄咕。 笑死,一個胖子當(dāng)著我的面吹牛蚌父,可吹牛的內(nèi)容都是我干的哮兰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼苟弛,長吁一口氣:“原來是場噩夢啊……” “哼喝滞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起膏秫,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤右遭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荔睹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狸演,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年僻他,在試婚紗的時候發(fā)現(xiàn)自己被綠了宵距。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡吨拗,死狀恐怖满哪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情劝篷,我是刑警寧澤哨鸭,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站娇妓,受9級特大地震影響像鸡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哈恰,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桨醋,春花似錦蜂筹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桑涎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兼贡,已是汗流浹背攻冷。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留紧显,地道東北人讲衫。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像孵班,于是被迫代替她去往敵國和親涉兽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容