久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32學習:RCC時鐘實驗
[打印本頁]
作者:
51黑電子迷
時間:
2017-2-9 22:28
標題:
stm32學習:RCC時鐘實驗
//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
{ //偏移,寄存器名稱
vu32 CR; //0x00,時鐘控制
vu32 CFGR; //0x04,時鐘配置
vu32 CIR; //0x08,時鐘中斷
vu32 APB2RSTR; //0x0c,APB2外設復位
vu32 APB1RSTR; //0x10,APB1外設復位
vu32 AHBENR; //0x14,AHB外設時鐘使能
vu32 APB2ENR; //0x18,APB2外設時鐘使能
vu32 APB1ENR; //0x1c,APB1外設時鐘使能
vu32 BDCR; //0x20,備份域控制
vu32 CSR; //0x24,控制/狀態
} RCC_TypeDef;
void delay(unsigned long i)//8M內部時鐘的超級不精確的軟延時,9倍頻后延時是之前的9倍
{
int j;
while(i--)
{
for(j=0;j<1500;j++)
{}
}
}
void Stm32_Clock_Init(u8 PLL) //時鐘初始化
{
unsigned char temp=0;
RCC->CR|=0x00010000; //外部高速時鐘使能HSEON
while(!(RCC->CR>>17));//檢測第17位HSERDY為1表示外部時鐘就緒
RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
PLL-=2; //抵消2個單位,參數匹配
RCC->CFGR|=PLL<<18; //設置PLL值 2~16
RCC->CFGR|=1<<16; //PLLSRC ON
FLASH_ACR|=0x32; //FLASH配2個等待周期,匹配72M系統時鐘
RCC->CR|=0x01000000; //PLLON
while(!(RCC->CR>>25));//等待PLL鎖定
RCC->CFGR|=0x00000002;//設置PLL作為系統時鐘
while(temp!=0x02) //等待PLL作為系統時鐘設置成功
{
temp=RCC->CFGR>>2;
temp&=0x03;
}
}
int main(void)
{
Stm32_Clock_Init(9); //啟用外部8M時鐘,9倍頻,即72M
{ //GPOIA的led初始化
RCC->APB2ENR= 1<<2; //打開PA時鐘,
GPIOA_CRH &= 0XFFFFFFF0; //準備配置PA8 ,PA8是LED0
GPIOA_CRH |= 0X00000003; //PA8 推挽輸出
GPIOA_ODR |= 1<<8; //PA8 輸出高,即先關閉led
}
while(1)
{
GPIOA_ODR=clBit(GPIOA_ODR,8); //第8位置0,點亮led
delay(3000); //用一樣的參數,和之前使用內部8M時鐘的比較效果
GPIOA_ODR=enBit(GPIOA_ODR,8); //第8位置1,熄滅led
delay(3000);
}
}
//目測led翻轉速度差不多是原來9倍
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美三级a做爰在线观看
|
欧美操操操
|
成人午夜网站
|
91狠狠操
|
欧美国产在线观看
|
一级毛片网
|
操操av
|
国产精品免费一区二区三区
|
黄色a一级片
|
亚洲国产网站
|
91黄色免费视频
|
欧美日韩第一页
|
欧美精品在线视频
|
小镇姑娘国语版在线观看免费
|
高清乱码男女免费观看
|
综合伊人久久
|
免费美女网站
|
视频在线一区二区
|
伊人精品在线
|
久久视频在线
|
天天色天天干天天
|
日韩精品极品
|
久久综合社区
|
亚洲久久久久
|
欧美一级色
|
日本中文字幕在线播放
|
久久激情视频
|
国产在线日韩
|
欧美一级在线播放
|
日本加勒比在线观看
|
日韩视频免费大全中文字幕
|
久久久www
|
青草av在线
|
五月天久久久
|
中文字幕日韩一区
|
日韩成人小视频
|
久久黄色大片
|
国产成人亚洲精品自产在线
|
国产一级生活片
|
亚洲精品久久久久久久久
|
天天操天天干天天爽
|