寒假培訓報告
本次寒假培訓我們從原來的51最小系統轉換到了stm32,開始了對stm32的學習,主要是通過乙個課題讓我們從新建工程開始,一步步地認識stm32,了解它,最後能夠用它來實現我們想要實現的微控制器功能。
題目:基於stm32的超聲波測距顯示系統
基本要求:利用stm32開發完成乙個超聲波測距系統(公釐級),要求能夠實時顯示所測距離,利用串列埠列印到電腦上,或者直接顯示在lcd螢幕上,並且具有報警功能。(涉及內容:gpio、定時/計數器、串列埠、顯示屏的驅動)
前期:* 初始化io時鐘(gpio是外設的一種,外設需要提供時鐘訊號工作)
* 初始化io口
* 設定io口輸出的高低電平
編寫了跑馬燈的程式後,繼續對蜂鳴器和按鍵進行學習。蜂鳴器、按鍵的配置和led燈的配置步驟相同,需注意的是按鍵的埠輸出型別為gpio_mode_in,而蜂鳴器和led的埠輸入型別為gpio_mode_out;與51不同的是stm32的按鍵有「支援連續按」和「不支援連續按」兩種操作,在編寫程式的時候就需要設定乙個標誌來分別這兩種操作。
中期:了解了一些stm32的最基本的東西後,我們開始了對中斷、串列埠和定時器的學習。
與51不同的是,stm32的中斷需要進行分組,組0-4,同時對每個中斷設定乙個搶占優先順序和響應優先順序。
stm32的每個io口都可以作為中斷輸入,這就需要對io口進行配置,其中最重要的是要設定io口與中斷線的對映關係,這樣才能把外部中斷與中斷線連在一起;在設定中斷觸發條件的時候應設定為上公升沿觸發、下降沿觸發或者是任意電平變化觸發;編寫中斷服務函式也是很重要的,將想要進行的中斷操作編寫在中斷服務函式中,在開啟中斷後才能夠讓程式順利執行。串列埠和定時器的配置過程其實和中斷的差不多啦,使能、初始化、io口的復用對映,需注意的是串列埠需要用到資料暫存器和狀態暫存器來操作串列埠資料的收發和傳輸狀態的獲取。定時器需要注意的是溢位時間的計算。
後期:通過前兩個週期的學習,對32的基本知識有了一定的了解,就開始把之前學習的模組結合起來,完成最終的課題:超聲波測距。
超聲波用的是hc_sr04,原理如下:
(1).給脈衝觸發引腳(trig)輸入乙個長為20us的高電平方波 。
(2).輸入方波後,模組會自動發射8個40khz的聲波,與此同時回波引腳(echo)端的電平會由0變為1;(此時應該啟動定時器計時)
(3).當超聲波返回被模組接收到時,回波引 腳端的電平會由1變為0;(此時應該停止定時器計數),定時器記下的這個時間即為超聲波由發射到返回的總時長。
(4).根據聲音在空氣中的速度為344公尺/秒,即可計算出所測的距離。測試距離=(高電平時間*聲速(340m/s))/2
在寫超聲波測距的課題過程中,我覺得有幾個關鍵的地方:
* 對定時器和串列埠通訊的原理和使用方法應該有一定的了解,在使用它們編寫程式的時候要思路清晰,要注意定時器計算的是時間,在超聲波的echo發出高電平的時候使能定時器,echo接收到低電平的時候關閉定時器,一次計時完成後運用距離轉換公式length=t/58.8,將獲取的時間轉換為距離。
* 在利用串列埠進行閾值設定的時候,要注意給串列埠傳送的不是我們看到的數字,而是字串,而字元時以ascii碼的形式儲存在陣列中,0的ascii碼是48,我們就可以通過-48來進行數制的轉換,完成設定閾值:
for(b=0;ba+=(usart_rx_buf[len-1-b]-48)*table[b];
通過這段時間的學習,我對stm32也有了一定的了解,也遇到了很多問題和難點,比如說對原理的理解,對多種暫存器的使用等等。這也讓我知道了在學習東西的時候不能急,應該一步步來,打好基礎,有乙個好的基礎才能在後面的學習過程中走得比較順利,有了不懂的東西要及時去查資料或者問問身邊的同學。在編寫程式的過程之前應該先理清思路,在腦子裡對整個程式有個大致的構思,然後再一步步去實現它,在程式設計的過程中應該細心、嚴謹,這樣可以避免很多不必要的麻煩。
ACM寒假培訓 各種排序
基本思想 每次遍歷陣列,相鄰的兩個元素比較,公升序時 如果後面小於前面那麼就交換這兩個數,每次迴圈結束時使得乙個最大數冒泡至陣列尾部。最終實現全部排序。時間複雜度 o n 2 空間複雜度 o 1 優化 由於氣泡排序在進行排序時,遍歷一次的同時可以判斷該陣列是否有序,因而在排序時可以判斷如果當前陣列有...
華信寒假培訓1 16
今天的集訓給了我以 會 1 斌哥問了我環境變數的含義,我也曾想過路標的意思,但是臨場思維就短路了。這一直以來都是我的乙個硬傷,今後還要不斷的經歷各種場景,才能遇事風雨不驚 2 今天講的好多常識都不會,啊!越發感覺到以前虛度光陰實在是一件愚蠢的行為,在合適的年齡沒有做合適的事,可憐啊!所以今後不管做什...
2019寒假紀中培訓
今天第一天開始比賽,感覺還是可以的吧,我覺得這種節奏比較快的生活比較適合我 今天改完題寫完部落格本想寫寫作業,但我一看書包,神tm我竟然沒有帶作業!作業漏在宿舍了 晚上跑到了科技館,用上了win 7win7 win7 真開心 今天比賽發揮超級水,差點爆0,還好最後利用水分 成功的水到了40分 今天晚...