色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

資深工程師教您巧做單片機項目的思路方法

UtFs_Zlgmcu7890 ? 來源:互聯網 ? 作者:佚名 ? 2017-11-30 08:02 ? 次閱讀
對于一個沒有太多程序設計經驗的萌新工程師來說,如何有規劃有條理的進行程序設計,是一個很值得學習的課題。在本文中,作者結合自身的經驗,淺要的談一談項目中的程序設計思路與步驟。


我們平時在學習開發板、示例程序或者demo的時候,會發現這種程序設計都是單一的外設或者功能,功能實現就算演示成功。但是在實際的項目設計過程中,往往需要設計的程序是非常龐大且復雜的,項目的功能和項目需求可能會超級多。此時在程序設計中,既要使MCU同時兼顧各個外設而不發生沖突,又要合理的設計程序構架,使所有的需求都能邏輯清晰的實現相關功能。

所以程序設計一定要有思路。當我們拿到一份項目需求的時候,不能一上來就敲代碼,最后隨跳躍的思維寫出來的程序邏輯把自己都繞暈了還沒能實現所有功能。就像蓋高樓前一定要有圖紙一樣,在進行程序設計前也要有程序構架。

程序框架與底層無關,它重在整體需求的實現與邏輯關系。例如我們把一個具體的項目需求細化為10個具體的任務,每個任務都完成一些特定的功能。先忽略每個任務里的內容,這10個任務和它們之間的切換邏輯就組成了此項目的程序構架。

有了程序設計構架,接下來就是實現每一個任務具體的功能,不同的部分分模塊編寫,例如外設單獨寫一個文件,傳感器驅動單獨列一個文件,所有文件之間相互獨立,這樣不僅思路清晰,且在排查問題的時候,能直接屏蔽某一個文件,更快速的定位問題所在。

有了思路之后,接下來我們談一談具體的設計步驟。假設此時我們拿到了一個具體的項目需求書。1項目規劃

首先把需求拆分,分為一個個任務,每一個任務去實現相應的部分功能,設計好任務之間的切換條件。此時暫且不考慮底層,只是列出所有任務和任務之間的邏輯切換關系,這樣就有了程序構架,然后再規劃每個任務里面里面需要多少具體功能,列出來一個表,或者寫成空函數先放著。列完每個任務的具體功能之后,我們再回頭看需求書,是否所有功能都實現,且它們之間的切換關系邏輯都很清晰。

2功能模塊化

第一步完成之后,整體的系統構架和邏輯關系就一清二楚了,接下來我們按照第一步中列的每個任務的功能表,去完成具體功能實現。此時,還不急著敲代碼,繼續規劃。我們知道,對于MCU來講,通常所有的功能最終是要通過調用底層實現。所以接下來我們要規劃需要多少底層的資源,根據第一條中任務具體的功能列表,我們列一個底層驅動表。例如功能需要使用UART,SPI等這些外設資源,所有外設資源列成一個外設表,表中是所有需要使用的外設資源。如果還需要其他驅動,例如傳感器、LCD、FLASH等,所有器件列一個器件驅動表。

3編寫外設驅動

有了第一步和第二步從上向下的規劃,此時我們應該已經很清楚這個項目需求書如何變成代碼實現。此時,開始編寫程序,從下向上,逐層編寫。

首先要根據外設表編寫每個外設對應的驅動,每個外設驅動單獨列一個文件,編寫好之后驗證功能是否正常,這個步驟跟本文開頭提到的開發板示例程序類似,很基礎。如果同一個外設,需要同時實現幾路輸出或輸入,例如需要三個不同的IIC輸出,那就同時啟動三路IIC驗證功能是否都正常,每一路之間會不會有干擾。

每編寫一個驅動,一定要對驅動中的每一個函數進行功能驗證。只有底層沒問題,才能往上封裝。

4編寫器件驅動

因為器件的驅動很多都是以外設驅動為基礎的,所以寫完外設驅動之后,利用外設驅動的函數,去實現器件的驅動,例如FLASH,可能是SPI通信的,那么我們首先要寫好SPI驅動文件,然后調用SPI驅動文件,編寫FLASH驅動文件,完成具體的功能函數,例如FLASH的擦除,讀寫等。

同樣,每一個編寫的器件驅動都要對每一個函數進行測試。

5其它驅動的編寫

可能在項目中,還涉及到一些無關底層的東西,例如一些加密算法,復雜的數據處理算法,各類通信協議等??梢园衙恳活惙譃橐粋€模塊,編寫或者移植完之后一定要驗證每一個函數的功能。

6實現任務里的功能函數

驅動文件都準備好了之后,就利用驅動文件,加上必要的數據處理,去完成任務里的每一個具體的功能函數。

同樣,每一個編寫的功能函數都要進行測試。保證功能正常實現。

7任務測試

完成步驟6之后,要對每一個任務進行測試,看是否能實現規劃中要求的功能。

8系統測試

完成步驟7之后,項目基本完工,因為每一層都是經過測試的,所以整個系統也不會有太大問題,但是也可能存在一些例如邏輯或者資源沖突的錯誤。此時按照需求書要求的功能對整個系統進行反復測試,查找可能存在的問題,進一步完善程序。

9注意事項

在整個設計過程中,還有一些其他的注意事項,例如:

● 如果開了很多中斷,一定要對每個中斷設置優先級。明確哪個優先級應該優先處理。

● 相同優先級下的兩個中斷,禁止在第一個中斷中觸發第二中斷,程序會卡死。

● 少用全局變量,系統運行時必要的變量和狀態可以都放在結構體中。然后只定義一個結構體變量。

● 當結構體的成員為不同數據類型時,成員排序就顯得很重要,優化排序會節約很多內存。

● 結構體做形參的時候,為減少??臻g的開支,最好設置結構體指針類型的形參。

● 不可以返回指向??臻g的指針。

● 如果通信接收或者發送沒有硬件FIFO,可以編寫軟件FIFO,避免丟包。

● 所有變量要初始化具體數值,尤其是局部變量。

● 定義指針類型變量一定要初始化。

● 只在本文件里使用的函數或者全局變量,一定要加static。

● 頭文件中只能聲明,不可以定義。

● 一定要添加合適的注釋,大部分時候代碼不知自己看。

● 使用數據結構存儲或者處理數據,例如結構體、枚舉、鏈表、隊列等。

看完這些步驟,是不是覺得復雜項目的程序設計原來也挺簡單的,那就愉快的開始程序設計之路吧。

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

    關注

    6036

    文章

    44555

    瀏覽量

    634953
  • 外設驅動器
    +關注

    關注

    0

    文章

    3

    瀏覽量

    3421

原文標題:淺談項目中的程序設計思路與步驟

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TI工程師掌控自己的電源設計

    TI工程師掌控自己的電源設計
    發表于 08-04 09:41

    跪求單片機高手,資深電子工程師指點

    如果您是單片機高手,資深電子工程師,請留步觀看!本人欲學習單片機,各位高人如有較為系統的資料、書籍、光盤,請不不吝賜教!十分感謝!郵箱:dingyanming0903@163.com
    發表于 01-08 17:20

    工程師掌控自己的電源設計

    工程師掌控自己的電源設計
    發表于 04-16 20:48

    工程師掌控自己的電源設計

    工程師掌控自己的電源設計
    發表于 04-16 20:53

    此書幫你深入學習單片機成為資深高級工程師

    本帖最后由 冰葑世紀 于 2013-7-29 00:42 編輯 如果你覺得你的單片機有了一定水平,但還是成不了資深或者高級工程師,那么,下面的資料幫你實現這個愿望,下載地址:[hide][/hide]
    發表于 07-23 15:05

    【社區之星】如何成為一位“合格”的資深電子工程師

    。技術的合作與共享,是一個有利于大家、有利于千秋的事情,所以我希望工程師能在社會中擺正自己的位置,與社會融為一體,以促進社會技術的跨時代大發展。 9、電子發燒友:出的《單片機編程魔法師之高級裸編程
    發表于 11-24 15:55

    資深工程師的進階之道

    ARM嵌入式和單片機學習有著密不可分的關系,在學習單片機的過程中積累必要的學習經驗和知識是非常有必要的,如何在這一過程中逐漸成為高級嵌入式工程師呢?本文將為大家介紹如何在學習過程中,積累成為高級
    發表于 09-27 15:15

    資深工程師與你分享單片機學習經驗

    錢嗎?企業還會為找不到高技術人才而發愁嗎?再說了,企業敢用只學了10天的單片機工程師嗎?希望讀者能像筆者一樣,掌握正確的方法之后,堅持去玩。2.熟練軟件開發工具開發工具軟件一定要熟練。說到開發工具,因為
    發表于 10-12 09:28

    國內控制器龍頭行業招聘資深算法工程師

    國內智能控制器龍頭企業研究院招聘資深算法工程師,工作地點:南山科技園,有興趣請聯系:kezhq@126.comqq:12530691 謝謝資深算法工程師5年以上
    發表于 01-26 17:45

    前華為資深工程師帶你玩轉嵌入式軟件調試方法

    內容面向哪些人群:嵌入式軟件開發工程師、單片機軟件開發工程師、軟件開發工程師等 參與直播將獲得如下知識點:1、了解嵌入式軟件開發主流的調試手段2、CLI設計原理和源碼實現3、如何制作一
    發表于 10-18 15:48

    前華為資深工程師帶你玩轉嵌入式軟件調試方法(附命令行代碼)

    。本次直播主要介紹軟件調試幾種主流方法,重點詳細講解CLI的設計原理和源代碼實現并如何制作一個自己的CLI。直播內容面向哪些人群:嵌入式軟件開發工程師
    發表于 10-19 12:00

    【高手問答】資深工程師版主殷培與聊聊不一樣的LabVIEW

    的事兒【高手問答】第14期——如何升華51單片機基礎,成為一個出色的開發工程師。【高手問答】第13期——向資深PCB設計取經:如何設計高速PCB【高手問答】第12期——韋東山老師VS
    發表于 08-28 13:58

    單片機初學者邁向單片機工程師

    單片機初學者邁向單片機工程師單片機初學者邁向單片機工程師
    發表于 01-15 16:33 ?45次下載

    工程師單片機學習經驗技巧

    工程師單片機學習經驗技巧
    發表于 01-22 21:11 ?24次下載

    資深工程師單片機項目經驗分享

    資深工程師單片機項目經驗分享,條條真理!
    的頭像 發表于 05-30 17:13 ?3311次閱讀
    <b class='flag-5'>資深</b><b class='flag-5'>工程師</b><b class='flag-5'>單片機</b><b class='flag-5'>項目</b>經驗分享
    主站蜘蛛池模板: 狠狠色综合久久婷婷| ass女人下部欣赏| 亚洲日本欧美日韩高观看| 十二月综合缴缴情| 超碰视频在线| a级毛片高清免费视频| 99精品国产在热| 亚州免费一级毛片| 污污又黄又爽免费的网站| 骚浪插深些好烫喷了| 色综合久久综合网观看| 老师的快感电影完整版| 久久ZYZ资源站无码中文动漫| 成人性生交大片免费看4| yellow2019在线观看视频| 中国女人精69xxxxxx视频| 影音先锋亚洲AV少妇熟女| 在野外被男人躁了一夜动图| 在线观看免费小视频| 91久久综合精品国产丝袜长腿| 97se se| 草莓视频在线免费观看| 初中XXXXXL| 国产精品亚洲二线在线播放| 国产亚洲人成在线视频| 国产AV无码一二三区视频| 国产精品久久欧美一区| 果冻传媒在线观看资源七夕| 精品伊人久久| 国产精品亚洲精品久久国语| 国产精品女主播主要上线| 国产这里有精品| 久久久无码精品无码国产人妻丝瓜 | 久久精品WWW人人爽人人| 久久无码人妻AV精品一区| 免费人成在线观看视频不卡 | 97人妻碰视频在线观看| qvod 电影| ccc36色小姐电影| 国产成人永久免费视频| 精彩国产萝视频在线|