下面簡單介紹下跑馬燈程式主要需要配置的方面:
crl和crh暫存器用於配置stm32的io口的模式和速率;
gpio有8種工作模式:
1、輸入浮空
2、輸入上拉
3、輸入下拉
4、模擬輸入
5、開漏輸出
6、推挽輸出
7、推挽式復用功能
8、開漏復用功能
對應**如下:
typedef enum
gpiomode_typedef;
配置io口的速率,定義io的速率如下:
typedef enum
gpiospeed_typedef;
下面再來看看如何定義配置速率、模式和引腳的結構體的,
typedef
struct
gpio_inittypedef;
另外:
gpio_inittypedef gpio_initstructure
上面**語句表示的意思是:定義結構體變數gpio_initstructure;類似於int a的意思;gpio_inittypedef可以理解為類似於int,gpio_initstructure可理解為類似於a的意思;
下面舉例說明初始化pa8和pd2,**如下:
void led_init(void)
另外,設定pa8口為1,可以用如下語句:
gpio_setbits(gpioa,gpio_pin_8);
若設定pa8位0,可以用如下語句:
gpio_resetbits(gpioa,gpio_pin_8);
最後就是在主函式main.c裡面設定led0和led1的狀態,然後翻轉,實現小燈的交替閃爍,程式如下:
int main(void)
}
今天還學到了:在定義結構體時,裡面的成員變數之間是分號;二定義列舉型別時,裡面的成員變數之間用逗號分開;
另:int main(void)中,第乙個int表示主函式的返回型別時整型,括號中的void表示形參是void;
2. 如果使用者需要新增或者刪除.h檔案,但是一定要注意在標頭檔案fwlib下的stm32f10x_conf.h 檔案中注釋掉刪除的原始檔對應的標頭檔案;
以後如果有時間的話,把gpio的8種工作模式的各個含義整理一下,8種工作模式分別代表什麼意思,在哪種情況下用哪種模式,都好好再整理下;
stm32F103RCT6的DMA使用經歷
dma可以直接傳輸資料,減少了cpu的負擔,是個很好的功能,但是用的時候難免會一頭霧水。這次做個小小的串列埠收發程式就碰到了許多問題。之前沒有注意,選擇了dma的circular模式,然後奇怪的事情發生了 很明顯我這個hal uart transmit dma是寫在while 1 外面的,但是串列埠...
STM32F103ZET6學習總結
1.任何外設在使用之前,必須先使能相應的時鐘。2.使用不同外設時,gpio引腳應該如何配置?1 gpio mode ain 模擬輸入 2 gpio mode in floating 浮空輸入 3 gpio mode ipd 下拉輸入 4 gpio mode ipu 上拉輸入 5 gpio mode ...
STM32F103VET6 字尾意義
stm32代表arm cortex m核心的32位微控制器.1.f 那一位指的是產品型別,現在似乎只有通用型即 f 2.103 那位指的是產品子系列,101 基本型,102 usb基本型 usb 2.0全速裝置,103 增強型,105或107 互聯型 stm32f103資源 一路can2.0b,最大...