最近用了很久的庫函式版本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 本次實驗用到的暫存器仍然是之前學過的那幾個,但是在用法上卻更深入一些,本次實驗的難點個人認為有兩個,一是理解按鍵捕獲的原理,二是理解按鍵捕獲的實現方法。按鍵捕獲的原理 定時器向上計數,定時器被設定為上公升沿捕捉,當按鍵被按下時,捕捉到上公升沿,於是記錄此時的...