你有沒有想過一個問題,我們現在都是在寫一個單片機的程序,它也就像是一個人一樣,他再厲害,他能單槍匹馬的攻陷一個城池嘛?答案是否定了。你要是說手撕鬼子,飛檐走壁,空中抓子彈,然后可以一人下一城,那我無話可說。
那么,怎樣讓單片機不是一個人在工作呢?這就需要另外一個單片機,簡稱:小明 和 小紅。讓我們來想想一個場景,小紅被其他小朋友欺負了,她剛好有小明的電話號碼,她給小明打了一通電話, 說了一句,我被欺負了。小明只是淡淡的回復了一句:哦!(活該沒有女朋友)。其實背地里,小明早已帶著砍刀奔向了戰場,但是為時已晚。。。小紅早已傷心的離開了。所以,愛就要全部說出來,我們大男的何必這么含蓄呢(有點偏題了)。
分析以上故事:
-
小紅被打 -- 一號單片機檢測到引腳電平變化。
-
小紅給小明打電話“我被欺負了”。 -- 一號和二號單片機之間傳輸信息。
-
小明回答“哦” -- 二號單片機返回應答信息。(可有可無)。
-
小明帶著砍刀過去 -- 二號單片機執行對應的功能。
類似的情景用下方功能替換:(暫時用串口說明)首先,你會看到 A 的 Tx 和 B 的 Rx 連接在一起。為什么要這樣呢?因為 Tx 相當于嘴巴在說話,而 Rx 相當于耳朵,在聽別人說話。把A的嘴巴用 導線 接到 B 的耳朵上,那么我們就可以把一些話說給 B 聽了。相反。B 也可以說話給 A 聽了。
-
A 單片機通過 IO口 檢測到引腳電平變化
-
A 信息通過 Usart串口 傳遞給 B 單片機
-
B 發現 A 傳過來引腳變化的信息。
-
B 將小燈泡點亮。
=====================
那我們編程序大致就如下:
文件 A.c
文件 B.c
到此,只要 A 把 1 通過串口發送給 B,那么 B 就會把 IO 設置成低電平,這樣在電路上的表現形式就是,燈被點亮了。這也就實現了單片機 A 控制單片機 B 的效果。兩個單片機之間可以通信了。如果你再深入思考一下,如果你有什么辦法來替代電線,也就是 Tx 和 Rx 之間不需要有形的電線連接在一起,那么是不是就又實現了數據的無線傳輸了呢??