在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機項目有必要分層設計嗎?

Dp1040 ? 來源:嵌入式專欄 ? 2023-09-23 09:31 ? 次閱讀

有網友問:單片機小項目,有必要做分層設計嗎?

這個問題,主要看項目本身,以及公司管理。小項目,是有多小?公司對項目的管理是否看重?

正規一點的公司,從長遠的角度來說,很有必要做好軟件分層設計。下面就簡單說兩點編程分層的思想。

分層思想

嵌入式分層思想,可能初學者不太懂,但你肯定見到過很多類似下面這樣的軟件結構圖。

比如,RT-Thread Nano內核結構:

ed682100-59a8-11ee-939d-92fbcf53809c.png

STM32Cube軟件結構:

ed773b40-59a8-11ee-939d-92fbcf53809c.png

這種軟件結構圖,里面的東西可能有點多,可能你也看不懂。 但是,只要你仔細一看每個區域的劃分,你就會發現,它們是把軟件劃分了多個區域,這里其實就是一種分層的思想。

舉一個例子:一個遙控器控制一個小車運動,包含遙控器的按鍵(比如:前后左右),無線通信(比如:433),小車無線接收,電機驅動、電機控制算法等。

遇到這種嵌入式軟件開發,你會怎么編程?

1.底層驅動層小車部分:電機驅動(比如IO時鐘、PWM配置)封裝成一個函數、433驅動封裝成一個函數。然后把這兩個函數整理在一個Driver(驅動)函數。

遙控部分同理:按鍵驅動(比如IO時鐘、配置)封裝成一個函數、433驅動封裝成一個函數。

2.中間層這里比如你電機用到了加減速、左右轉向的一些算法,封裝成對應Middleware中間層模塊函數(待應用層調用)。

3.應用層應用層就考驗你業務邏輯的一層,也是整合軟件資源的一層。如果你代碼層次畫分的話,業務邏輯代碼就很容易。

反之,你代碼很亂,要實現一個業務邏輯,可能連續加班多天,最后寫出來的代碼也是bug無數。

模塊化

嵌入式編程,模塊化相當重要,可以說,它會影響你代碼質量、加班多少、甚至升職加薪。

還是上面那個例子:一個遙控器控制一個小車運動,包含遙控器的按鍵(比如:前后左右),無線通信(比如:433),小車無線接收,電機驅動、電機控制算法等。

如果你把所有代碼都寫在main函數,你說能實現嗎?當然,肯定也能實現。 但是,你這樣寫,你的業務邏輯代碼是不是很廢腦、很費時間? 還有,你后續加修改按鍵方式、添加功能,你該怎么辦?

所以,你需要模塊化編程,把一些小模塊分別封裝成函數,提供給對應的應用層調用。

上面其實也說了:電機驅動(比如IO時鐘、PWM配置)封裝成一個函數,這其實就是一個小模塊。 當然,這里的驅動函數只是一個小模塊,然后還需要進一步封裝成“大模塊”。

比如:我這里還引入一個編碼器,閉環檢測電機速度,通過底層電機驅動、加減速算法,編碼器等整合成一個電機運動的函數(模塊):MOTOR_Ctrl(速度,方向)。這就是一個大模塊(當然,還可以結合需求再進一步封裝)。

最后,還有很多重要的編程思想,需要開發者了解并掌握,在一定程度上,你的編程思想決定了你是新手級別,還是大神級別。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6040

    文章

    44594

    瀏覽量

    636923
  • 無線通信
    +關注

    關注

    58

    文章

    4589

    瀏覽量

    143688
  • 電機驅動
    +關注

    關注

    60

    文章

    1219

    瀏覽量

    86839

原文標題:單片機項目有必要分層設計嗎?

文章出處:【微信號:玩點嵌入式,微信公眾號:玩點嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    初學單片機必要單片機學習板嗎?

    初學單片機必要單片機學習板嗎?如果需要的話,請推薦?要求功能強大,附帶資料齊全,適合初學者,學完以后還有使用價值。如可以學別的單片機?;?/div>
    發表于 11-09 14:23

    淺談單片機程序設計中的“分層思想”

    本帖最后由 ke_c 于 2013-8-1 10:41 編輯 淺談單片機程序設計中的“分層思想”分層的思想,并不是什么神秘的東西,事實上很多做項目的工程師本身自己也會在用。看了不
    發表于 08-01 10:38

    學習單片機真的必要學習匯編

    學習單片機真的必要學習匯編,從51單片機匯編語言開始學習,這是入門級的。網上好多都是C語言方面的資料,有的人說沒必要學匯編,直接學習C語言
    發表于 08-18 07:57

    單片機程序設計中的“分層思想”是什么意思?

    單片機程序設計中的“分層思想”
    發表于 02-22 07:18

    單片機分層屏蔽的設計思想

    單片機分層屏蔽的設計思想
    發表于 02-26 06:19

    單片機項目失敗的原因哪些?

    單片機項目失敗的原因哪些?
    發表于 04-19 07:33

    MCU級軟件必要分層

    一、MCU級軟件必要分層嗎?1.1 如果不分層會怎樣?看下面這段示例代碼void main(){sys_init()while(1){ //用PA1控制LED亮滅GPIO_SetBi
    發表于 11-03 08:57

    單片機晶振的必要性_單片機晶振的作用_單片機晶振電路原理(51單片機

    本文首先介紹了單片機晶振的必要性,其次介紹了單片機的作用和原理,最后闡述了單片機晶振的常見問題。
    的頭像 發表于 04-18 11:49 ?7.4w次閱讀

    51單片機和STM32單片機哪些區別

    大部分朋友可能都知道51單片機和stm32單片機也知道一般入門會先學習51單片機在學習stm32單片機會簡單一些,但是對于51單片機和stm
    發表于 08-13 17:32 ?17次下載
    51<b class='flag-5'>單片機</b>和STM32<b class='flag-5'>單片機</b><b class='flag-5'>有</b>哪些區別

    單片機程序應用、驅動分層獨立開發方案

    單片機程序應用、驅動分層獨立開發方案
    發表于 11-13 12:36 ?19次下載
    <b class='flag-5'>單片機</b>程序應用、驅動<b class='flag-5'>分層</b>獨立開發方案

    51單片機仿真設計項目大全

    51單片機仿真設計項目大全!
    發表于 11-23 16:51 ?119次下載
    51<b class='flag-5'>單片機</b>仿真設計<b class='flag-5'>項目</b>大全

    基于proteus學習51單片機項目資料

    為了調試51單片機的代碼,做了一些仿真,之前打算好好寫寫技術文章的,后來覺得CSDN關于51單片機基本的模塊都介紹很詳細,就沒必要再寫了,后面要基本搞stm32實戰的項目了,將自己調過
    發表于 11-23 16:51 ?3次下載
    基于proteus學習51<b class='flag-5'>單片機</b>的<b class='flag-5'>項目</b>資料

    ARM單片機和STM32單片機之間什么區別

    單片機工程師在進行項目開發的時候,經常需要進行單片機選型,根據項目功能需求選擇合適的單片,這就要求對每種
    的頭像 發表于 01-07 13:59 ?1.1w次閱讀

    單片機實驗項目分享

    單片機實驗項目分享
    發表于 02-20 16:22 ?33次下載

    單片機最小系統能夠運行起來的必要條件

    單片機最小系統能夠運行起來的必要條件: 一、硬件方面的必要條件 單片機芯片:單片機最小系統需要選擇一款適合
    的頭像 發表于 01-15 09:34 ?1450次閱讀
    主站蜘蛛池模板: 中文字幕网资源站永久资源| 无夜精品久久久久久| 亚洲精品91大神在线观看| 福利精品| 爱情岛网站亚洲禁18进入| 一级毛片在线不卡直接观看| 久久 在线播放| 一卡二卡三卡四卡无卡在线| 午夜欧美视频| 日本 韩国 三级 国产 欧美| 久久精品2020| 岛国三级在线看| 色噜噜亚洲男人的天堂| 欧美呜巴又大粗又长| 久热网| 五月综合激情视频在线观看| 三级网址在线播放| 久久国产高清视频| 夜夜夜爽| 国产夜夜操| 一区二区三区中文国产亚洲| 俄罗斯久久| 色老头在线官方网站| 久久网站免费| 午夜精品一区二区三区在线视| 狠狠色狠狠色狠狠五月ady| 67xxxxxx日本| 一级无毛片| 欧美一级黄色影片| 成人免费精品视频| 欧美成人天天综合天天在线| 日韩操穴| 亚洲大香伊人蕉在人依线| 日本www色视频成人免费网站| 国产成人91青青草原精品| 日本人视频-jlzz jlzz jlzz| 天天爽夜夜爽每晚高澡| 美女bbbb视频| 香蕉视频久久久| 色婷五月| 成人av.com|