剛剛完成兩種板子的點燈儀式,下面記錄一下大概過程,以及出現的困難。
電燈大概過程如下:
1.找出相應的手冊,以及對應的原理圖。
2.通過查詢手冊找到led對應的gpio。
3.編寫標頭檔案,將相應的要使用到的位址寫到頭檔案下。
關於手冊和原理圖
先說stm32f10x資料手冊,這個手冊用於查詢要使用的位址用於編寫標頭檔案,我們要查詢要使用的 gpio的暫存器的位址,時鐘的位址。
而原理圖是用來查詢要使用的led所對應的gpio,比如c8t6的指示燈所對應的就是gpioc13。
gpio的位址可以在資料手冊的2.3暫存器對映映象一章中找到。
gpio相應暫存器的功能以及位址要在gpio章節中查詢。
標頭檔案為了方便我們編寫程式,我們先編寫標頭檔案,在標頭檔案中將我們要使用的位址,都定義為相應的巨集,這樣在我們編寫程式的時候就不再需要一次一次查詢手冊了。
在定義巨集時我們一般用的時基址定址,比如在本次電燈中我們所用到的gpio外設都掛載在apb2上,我們只要將apb2的首位址定義成巨集即可,之後定義apb2上的外設的位址是,我們利用偏移量來定義即可。
編寫主程式
1.將對應的始終開啟,注意不同的外設所對應的時鐘不同。
2.配置對應的gpio暫存器,這裡我先配置的是 clr(指南者) 和 chr(c8t6) 暫存器,也就是先配置的輸出模式以及輸出速率,設定為推挽輸出
10mz的輸出速率,之後配置的odr
將其設定為低電平。
3.在最後要新增乙個死迴圈, `while(1);`
模擬舵機學習(c8t6主控制器)
prescler hclk 在時鐘配置頁面有 1 mhz counter period 預分頻值,計算方式在最下面 核心 1 hal tim base start it htim14 開啟定時器14中斷 2 hal tim pwm start htim14,tim channel 1 開啟14中斷的...
用C8T6坐小車的第三天
今天開始嘗試在oled上顯示超聲波所測量的資料。出現的問題很簡單但也是沒注意的後果,就是資料顯示的地方以後要從左上角開始,以免螢幕顯示不出來。今天學習了循跡模組,並開始寫小車循跡的程式了。循跡模組的原理很簡單,利用紅外線在不同顏色的物體表面具有不同的反射強度的特點,在小車行駛過程中不斷地向地面發射紅...
用C8T6坐小車的第二天
今天終於實現了小車的行進,後退等功能,中間也出現了很多問題。我們發現用降壓模組降壓後給c8t6還是說電壓並不穩定,查詢後發現最好的是利用降壓模組將鋰電池的電壓降到5v再用降壓晶元降到3.3v給c8t6供電。後來我們遇到的最大問題就是四驅的小車,其中乙個輪子在其他三個輪子正轉時不動,而當反轉時,四輪都...