編者按:大四畢業狗一隻,在杭州某達物聯網研發實習,正惆悵學海無涯時,經理吩咐我一個任務:找塊板子,用IO口輸出一個100Hz的方波,要求高、低電平都小於50ms。編程
好了,若是您看到標題還能繼續看下去,那我必須得先表達我對您敬意。先分析功能需求: f=100Hz,T=1/f=10ms,來個簡單的方波,佔空比50%,高、低電平各5ms,和上限50ms差了10倍,有點奇怪,再次和經理溝通需求,改成高、低電平爲10ms,也就是週期T=20ms,f=50Hz。準備好硬件:含STM32系列的PCB板一塊、JLINK或其餘下載線、示波器或者LED;軟件:STM32CubeMX、keil uvision 5或其餘編程軟件。3d
翻來覆去就只有一塊MCU爲STM32L471RE的GPRS轉接板,匆匆掃一眼,OK,沒問題,可用它作一個50Hz的方波輸出,確實有點屈才了,就像您如今正在看我這篇文章同樣。blog
1、配置STM32CubeMX工程外設初始化。教程
2、編譯程序io
3、下載。沒法下載的朋友請自行百度,有太多教程了。編譯
4、查看波形百度
5、反思與總結軟件
此次實現結合硬件與軟件一步一步操做,從0實現輸出50Hz的波形,雖然所要求的程序較簡單,步驟也相對簡單,但倒是完成一個項目所必須具體的步驟縮影,必須熟練掌握。固然,其中我也出現了問題,第一次按照這個步驟並無輸出方波,查找緣由後,是由於PCB板沒有焊接HSE(高速外部晶振),但在工程配置中,我卻使用了HSE做爲MCU的時鐘源,因此建議選擇12*用HIS,即高速內部時鐘,從新生成配置文件,並編譯下載後,便可完成。配置
一步一個腳印,並養成檢查與反思的好習慣,就能夠減小甚至避免相似的錯誤再次發生。硬件