stm32筆記 RCC時鐘實驗

2021-09-01 17:42:45 字數 1263 閱讀 3871

//stm32f103rbt6,包含的啟動**是 stm32f10x.s

#include "mytype.h"

//gpioa8是 led0

#define gpioa_crl (*(vu32*)(0x40000000+0x10000+0x0800+0x00)) //volatile unsigned long

#define gpioa_crh (*(vu32*)(0x40000000+0x10000+0x0800+0x04))

#define gpioa_idr (*(vu32*)(0x40000000+0x10000+0x0800+0x08))

#define gpioa_odr (*(vu32*)(0x40000000+0x10000+0x0800+0x0c))

#define periph_base ((u32)0x40000000) //外設基址

#define apb1periph_base periph_base //apb1匯流排上的外設基址

#define apb2periph_base (periph_base + 0x10000)

#define ahbperiph_base (periph_base + 0x20000) //ahb匯流排外設基址

#define flash_r_base (ahbperiph_base + 0x2000) //flash相關暫存器基址

#define flash_acr (*(vu32*)(flash_r_base+0x00))//快閃儲存器控制0x40000000+0x20000+0x2000+0x00

#define rcc_base (ahbperiph_base + 0x1000) //0x40000000+0x20000+0x1000

#define rcc ((rcc_typedef*)rcc_base) //時鐘相關

typedef struct

rcc_typedef;

void delay(unsigned long i)//8m內部時鐘的超級不精確的軟延時,9倍頻後延時是之前的9倍

} }void stm32_clock_init(u8 pll) //時鐘初始化

} int main(void)

while(1) }

//目測led翻轉速度差不多是原來9倍

STM32筆記 RCC結構與配置流程

以前使用stm32寫程式的時候,使用的都是預設時鐘。因此寫數碼管顯示 a d測量電壓的時候都沒有去關心rcc時鐘配置這個事情。那時候只知道在配置外設的時候使用gpio inittypedef或者adc inittypedef這些結構體對外設進行初始化,以及使用rcc apb2periphclockc...

STM32筆記記錄

串列埠記錄 stm32有好幾個串列埠。比如說stm32f103zet6有5個串列埠,串列埠1的引腳對應的io為pa9,pa10.pa9,pa10預設功能是gpio,所以當pa9,pa10引腳作為串列埠1的tx,rx引腳使用的時候,那就是埠復用。復用埠初始化有幾個步驟 1 gpio埠時鐘使能。要使用到...

STM32學習筆記 時鐘樹與RCC

如果學過微控制器的同學應該不會陌生,學習51微控制器時最經常聽到的就是 最小系統 最小系統裡面少不了晶振,否則微控制器無法工作。微控制器需要晶振 時鐘源 來工作,那麼對於stm32晶元同樣如此。此外,同乙個電路,時鐘越快功耗越大,抗電磁干擾能力也隨之變弱。所以對於較為複雜的mcu一般都是採取多時鐘源...