暫存器版本的STM32程式設計思想01

2021-07-11 23:04:52 字數 894 閱讀 4367

最近用了很久的庫函式版本stm32程式設計,後來發現其中很多原理及過程不是很理解,最終決定以暫存器版本為切入點,重新把cotex-m3系列的晶元之一進行再次深入的了解。現記錄如下:**如下

實驗1跑馬燈:

實驗2 蜂鳴器:

實驗三 按鍵輸入(可持續按和不可持續按)

實驗四 串列埠實驗

實驗5外部中斷實驗

#include "led.h"

void led_init(void)

void beep_init(void)

#include "key.h"

#include "delay.h"

void key_init(void)

u8 key_scan(u8 mode)//mode meaning whether sustainable press.

else if(key0==1&&key1==1&&key2==1&&wak_up==0) key=1;

return 0;//no key pressing

}void uart_init(u32 pclk2,u32 bound)

#include "exit.h"

#include "delay.h"

#include "beep.h"

#include "led.h"

#include "key.h"

void exti0_irqhandler(void)//wkup

void exti2_irqhandler(void)//key2

void exti3_irqhandler(void)//key1

void exti4_irqhandler(void)//key0

exti->pr|=1<<4;

}void exit_init(void)

STM32蜂鳴器 暫存器

這次實驗犯了個笑話,竟然在巨集定義後面加分號.就像這樣 define 大家千萬不要學我,結果報錯expected expression,還苦惱半天,想為啥操作不了暫存器了?我真愚蠢!剛開始我也不會寫這些東西,其實摸清套路就好,rcc時鐘使能 gpio初始化 相關暫存器初始化 延時函式 串列埠等初始化...

STM32暫存器對映

1.對映即將記憶體的某段位址與某一暫存器對應,微控制器對函式的操作底層是操作暫存器,而暫存器最終是操作記憶體上對應的單元,2.各個暫存器對應的位址都是在st定義的起始位址上層層偏移得到 3.想要實現某功能可直接對此段記憶體寫進相應的值,即可賦予某一功能 4.stm32底層實際是先定義出外設基位址,然...

STM32 暫存器版本 輸入捕獲實驗

本人使用的是正點原子的ministm32 本次實驗用到的暫存器仍然是之前學過的那幾個,但是在用法上卻更深入一些,本次實驗的難點個人認為有兩個,一是理解按鍵捕獲的原理,二是理解按鍵捕獲的實現方法。按鍵捕獲的原理 定時器向上計數,定時器被設定為上公升沿捕捉,當按鍵被按下時,捕捉到上公升沿,於是記錄此時的...