有些小哥說,51和stm32終于哼哧哼哧學完了,想自己做個東西,就感覺腦子一片空白,完全不知道從哪下手,然后就有一種莫名失落感。
我跟他說,兄弟,這太正常了。可以說,100%的過來人,都會卡在這一步。
這跟笨不笨,適不適合沒關系,也不是你沒學好,是你大腦里那套“操作系統”該升級了。
新手大多缺少以下認知:
第一,你以為從51換到STM32是升級,其實那只是換了個工具,用工具的人沒變。
今天學個單片機,明天學個qt/c++,后天又去研究RTOS。知識點看起來很豐富,實際上全是碎片,說句難聽點的,知識碎片用不起來,放在腦子里就是垃圾。
你沒把這些零件串起來,項目是需要一個整體框架的,不是知識點的堆砌。
第二,在學校,你習慣了跟著教程走,一步一步都有人領著。教程讓你點燈,你就點燈;讓你讀按鍵,你就讀按key。
但真實的項目沒人給你寫教程,客戶只給你一個模糊的需求,比如報警網關。
這就要求你有工程師思維,自己去定義需求、拆解任務、設計流程。你還等著別人喂飯,那肯定餓死。
第三,總想著一上來就先想好整個功能怎么寫。結果想了三天三夜,一行代碼沒寫,光在腦子里左右互搏了。
最后覺得太難了,干脆放棄。
拉倒吧,我干了十幾年,寫的第一個版本也經常是一坨屎,但這坨屎能跑啊!能跑,就有優化的基礎。你連第一步都邁不出去,談何優化?
下面教大家一套流程,照著做你就不會迷茫。
第一,先搭框架,先把main函數里的while(1)這個主循環框架搭起來。
然后把你要做的功能,用中文注釋寫進去。
比如:
1. 按鍵掃描、
2. 溫濕度采集
3. 數據顯示
4. 串口上報。
這就是你項目的規劃。
第二,先跑通,再優化。
盯著一個功能往死里磕。比如先做按鍵掃描,哪怕用最笨的延時消抖,只要能穩定識別按鍵,這個模塊就算及格了。
把每個功能都用最糙的方式實現,讓整個系統先跑起來。這個過程,就是把你的知識碎片,強行拼在一起。
第三,學會抄,更要學會改。
你看STM32的HAL庫,或者一些藍牙、Zigbee協議棧的代碼,人家那架構是怎么寫的?任務是怎么管理的?為啥要用回調函數?
扒下來研究,把它的骨架抽出來,改成你自己的。我當年搞一個物聯網網關,程序架構就是這么連蒙帶猜、連抄帶改折騰出來的。沒人帶,就讓高手們的代碼當你老師。
當然,你也可以走個捷徑,就是抄我們經驗,再通過我們做項目過程,把經驗落地,把零散知識串起來。
end

下面是更多無際原創的個人成長經歷、行業經驗、技術干貨。
1.電子工程師是怎樣的成長之路?10年5000字總結
2.如何快速看懂別人的代碼和思維
3.單片機開發項目全局變量太多怎么管理?
4.C語言開發單片機為什么大多數都采用全局變量的形式?
5.單片機怎么實現模塊化編程?實用程度讓人發指!
6.c語言回調函數的使用及實際作用詳解
7.手把手教你c語言隊列實現代碼,通俗易懂超詳細!
8.c語言指針用法詳解,通俗易懂超詳細!