我記得剛開始自學單片機的時候,雖然把每個外設都用起來了,但是一到做專案就不知道怎么下手,
只能照著一些開發板的例程,自己按照他們的思路寫一遍,如果沒有例程就完全是懵逼狀態,
那時還以為自己的基礎不行,又去好好把c語言、單片機系統復習了一遍,如果你也試過,那一定知道其實沒什么鳥用,
做不出專案,最主要的原因不是你的基礎不行,當然也有這方面的因素,但不是最主要的,
下面,我來說下自己是怎么從一個做不出專案,到最后能夠獨立完成各種專案的,看完你一定知道下一步該怎么做,畢竟真正走成功過的路才具備參考的意義,文末有彩蛋哦,
我從以下幾個方面來剖析,
1. 為什么做專案無從下手?
2. 接下來怎么做?
一、為什么做專案沒思路?
做專案無從下手,最大的原因是你缺代碼組織能力,即專案經驗,
外設你都能用起來,但是一個產品功能肯定是是需要把各種輸入型外設采集到的資料進行一個邏輯處理,再通過芯片的輸出型外設去控制外圍電路最終實作產品的功能,
很多人就是這個環節出了問題,多個外設組合在一起使用,必定會增大代碼量,
比如說又要檢測按鍵短按、短按釋放、長按、長按釋放,中間最頭痛的是有沒有一個好的消抖和延時方法,
除了按鍵以外,可能同時你的串口還在一直接收資料,然后決議資料,最后還要通過串口發送一組回應資料出去,要怎么寫函式才能保證資料完整度,同時還要保證寫的代碼表現得不業余?
或許還要驅動一些指示燈完成一些效果,比如說隔3秒快閃2次等等,
有些功能如果代碼處理不好是會相互沖突的,
如果你沒經驗,沒處理過這樣的問題,那肯定沒有頭緒對吧?這跟你的經歷有關而不是說基礎,
二、接下來怎么做?
那我們找到問題了,接下來該怎么做?
其實一個產品功能涉及到的外設啊,協議啊,常用的來來去去就這么幾種:
從功能劃分就是:按鍵功能、串口資料收發、SPI通訊、IIC通訊、LCD顯示、模擬量采集、輸出控制(繼電器、LED等等)
涉及到的外設:GPIO、定時器、中斷、ADC、串口、PWM、DMA、FSMC
不管產品功能多么復雜,最終到單片機處理的肯定就是這么些東西,
你只需要每種外設,不管是需要采集的,還是需要控制的功能代碼怎么寫比較好以后就可以徹底解決這個問題了,
當然說起來簡單,實際做起來還是有很多細節的問題,
前面沒思路是正常的,也不用自己去想,直接去看別人怎么寫,最好是看一些寫的比較好的,
比如說按鍵檢測的功能別人都是怎么寫的,如果沒參加作業接觸不到這種代碼,完全可以在網上搜,
先模仿,吃透以后分析這種寫法的弊端,而創新就是怎么去把這個弊端解決,
其實就是這么個程序,并沒有能夠讓你一下從菜鳥秒變大神的神丹妙藥,如果有捷徑,那肯定就是有一個大神帶著你,教你實作原理,給你提供實作原始碼,并且指導自己重寫程序中碰到的問題,
如果你再網上還是有很多類似功能代碼搜不到,或者你覺得不夠好,
那么,彩蛋來啦!
我在2019年專門錄制的一套程式架構的視頻,錄著玩的,不要抱有專業講師水平的期望,我一邊錄還一邊點煙,但是內容價值絕對能讓你少走幾年彎路,公益分享不用錢!

這套教程就是專門講怎么解決這些實際產品開發當中的痛點,比如說本文說的按鍵處理,串口資料處理,LED燈處理等等,
其中涉及到了一些c語言高級的應用,比如指標、結構體,并通過這些高級應用實作了一些實用的功能,比如佇列演算法、回呼函式、任務創建、任務調度等,同時也為準備學習作業系統的童鞋打下基礎,


這里不能放鏈接,怎么拿,不用我教你了趴?記得先三連哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287464.html
標籤:其他
