0x02 LiteOS_Lab倉庫組件詳解--Driver(上)

      網(wǎng)友投稿 710 2025-04-01

      摘要:本貼詳解driver層,相信大家肯定有疑問,為啥我不說完AT層再說driver層?因為AT層就是通過調(diào)用driver層中的API來操作串口的,所以不得不在AT層的詳解中先把driver層說了。


      編程的抽象思想

      我們在接到一個客戶的需求時,幫客戶制作一份程序,大家有沒有想過“我能不能把這個客戶需要的代碼下次賣給其他客戶,節(jié)約自己的工作量”。要如何才能將剛剛我們提出的想法實現(xiàn)呢?這就需要通過編程抽象思想來實現(xiàn)。

      比如說有兩位客戶,客戶①的需求:我要在8051內(nèi)核單片機上實現(xiàn)一個AT收發(fā)的框架;客戶②的需求:我要在stm32f103單片機上實現(xiàn)一個AT收發(fā)的框架。那么這是我們就可以運用代碼接口抽象化、模塊化、降低模塊與模塊間耦合的思想了,將這份代碼從下到上分為3層:

      ①串口層:用于初始化串口,將上層的數(shù)據(jù)通過串口發(fā)出。將收到的數(shù)據(jù)提供給串口,我們在更換不同類型的單片機只需要從新寫這一層。

      ②driver層:也就是驅(qū)動層,它提供讀、寫、初始化等等函數(shù)給上層模塊使用,上層模塊操作串口和操作內(nèi)存卡的感覺是一樣的,通過這層完全屏蔽了底層設(shè)備的差異,所有能進(jìn)行讀寫的設(shè)備都可以通過driver層注冊并提供讀、寫函數(shù)即可,在更換底層設(shè)備,例如將內(nèi)存卡換成u盤只要適配好內(nèi)存卡硬件層和u盤硬件層,其余均不用改動。

      ③AT層:AT指令大家都知道,語法為AT+命令=參數(shù)、AT+命令?等,我們實現(xiàn)好這一層,只要調(diào)用相應(yīng)函數(shù)并傳入命令和參數(shù)就可以使用了。

      所以所上面兩位客戶的需求可以共用相同的AT層和driver層,只用分別添加uart硬件層即可,就算客戶后面改需求我們也不怕了,改硬件我們只需要修改硬件層(uart層)即可。

      driver層中的結(jié)構(gòu)體

      0x02 LiteOS_Lab倉庫組件詳解--Driver(上)

      使用結(jié)構(gòu)體編程運用了面向?qū)ο蟮乃枷耄岩粋€設(shè)備想象成對象,他有自己的屬性和行為,屬性對應(yīng)各種變量(設(shè)備名、只讀、只寫等),行為對應(yīng)各種函數(shù)(初始化函數(shù)、讀函數(shù)、寫函數(shù)等)。

      driver層自身初始化

      設(shè)備注冊函數(shù)

      設(shè)備注冊有兩種方式,一種是直接調(diào)用注冊函數(shù)注冊,另一種是調(diào)用宏定義讓設(shè)備的合適的時候自動注冊,先說第一種。

      設(shè)備取消注冊函數(shù)

      單片機 輕量級操作系統(tǒng) LiteOS

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何在表格中快速找到重復(fù)(如何在表格中快速找到重復(fù)的名字)
      下一篇:Google Python挑戰(zhàn)賽:不服,就來!
      相關(guān)文章
      久久亚洲成a人片| 亚洲欧洲无码AV电影在线观看| 亚洲狠狠久久综合一区77777| 国产日产亚洲系列| 亚洲性在线看高清h片| 日本中文一区二区三区亚洲| 亚洲av无码专区青青草原| 亚洲大码熟女在线观看| 国产成人精品久久亚洲高清不卡| 亚洲AV无码国产剧情| 国产精品久久亚洲一区二区| 亚洲 综合 国产 欧洲 丝袜| 亚洲国产婷婷综合在线精品| 亚洲裸男gv网站| 亚洲综合无码精品一区二区三区| 亚洲综合无码精品一区二区三区| 亚洲国产精品一区二区久久hs| 亚洲av综合avav中文| 亚洲最新永久在线观看| 亚洲黄色免费网址| 亚洲不卡中文字幕| 亚洲色偷偷综合亚洲av78| 精品亚洲成A人在线观看青青| 亚洲国产av无码精品| 国产亚洲?V无码?V男人的天堂| 亚洲精品无码av人在线观看| 亚洲AV无码一区东京热| 亚洲视频小说图片| 亚洲不卡中文字幕| 国产偷国产偷亚洲清高APP| 亚洲国产精品成人网址天堂| 国产亚洲成人在线播放va| 国产亚洲真人做受在线观看| 亚洲邪恶天堂影院在线观看| 亚洲天堂一区在线| 亚洲欧美日韩中文二区| 亚洲精品国产电影| 亚洲成a人片77777老司机| 亚洲大尺码专区影院| 亚洲欧美日韩一区二区三区 | 亚洲第一网站免费视频|