STM32蜂鳴器 暫存器

2021-08-24 23:40:04 字數 696 閱讀 4705

這次實驗犯了個笑話,竟然在巨集定義後面加分號...就像這樣(#define ***;)大家千萬不要學我,結果報錯expected expression,還苦惱半天,想為啥操作不了暫存器了?我真愚蠢!

剛開始我也不會寫這些東西,其實摸清套路就好,rcc時鐘使能、gpio初始化、相關暫存器初始化、延時函式/串列埠等初始化、迴圈執行相關操作,該用庫函式的用庫函式,該用暫存器的用暫存器,廢話少說,上**,這裡依然只給出beep部分和main部分;

1.beep.h

#ifndef __beep_h

#define __beep_h

#include "sys.h"

#define beep pfout(8)

void beep_init(void);

#endif

2.beep.c

#include "beep.h"

void beep_init()

3.main.c

#include "sys.h"

#include "usart.h"

#include "delay.h"

#include "led.h"

#include "beep.h"

int main(void)

}

STM32暫存器對映

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

STM32之暫存器開發

首先克服心理作用,不要總是預設暫存器開發難,其實暫存器開發和庫函式開發所用的方法和難度是一樣的,並不難,下面用以stm32為例解釋。1.明確自己需要的功能 庫函式開發也需要 2.檢視手冊,找到功能對應的微控制器資源 3.找到功能所需暫存器 庫函式開發需要找到相應的功能函式 4.根據位址每位對應的功能...

STM32之暫存器訪問

一般的暫存器訪問需要通過讀 改 寫三步曲和位運算的清0置1來實現,但在stm32的程式設計中,通過利用它的一些優秀的特性如埠位設定 復位寄存bsrr 位繫結等,我們可以大大提公升暫存器的訪問速度和簡化暫存器的操作。一般暫存器操作 gpiox odr 0x10 pin4置1 gpiox odr 0x1...