久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2417|回復: 0
打印 上一主題 下一主題
收起左側

stm32學習:RCC時鐘實驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:161768 發表于 2017-2-9 22:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. //STM32F103RBT6,包含的啟動代碼是 STM32F10x.s  
  2. #include "mytype.h"   
  3.   
  4. //GPIOA8是   LED0  
  5. #define GPIOA_CRL    (*(vu32*)(0x40000000+0x10000+0x0800+0x00)) //volatile unsigned long  
  6. #define GPIOA_CRH    (*(vu32*)(0x40000000+0x10000+0x0800+0x04))  
  7. #define GPIOA_IDR    (*(vu32*)(0x40000000+0x10000+0x0800+0x08))  
  8. #define GPIOA_ODR    (*(vu32*)(0x40000000+0x10000+0x0800+0x0C))  
  9. #define PERIPH_BASE           ((u32)0x40000000)         //外設基址  
  10. #define APB1PERIPH_BASE       PERIPH_BASE               //APB1總線上的外設基址  
  11. #define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)  
  12. #define AHBPERIPH_BASE        (PERIPH_BASE + 0x20000)   //AHB總線外設基址  
  13. #define FLASH_R_BASE          (AHBPERIPH_BASE + 0x2000) //flash相關寄存器基址  
  14. #define FLASH_ACR    (*(vu32*)(FLASH_R_BASE+0x00))//閃存控制0x40000000+0x20000+0x2000+0x00  
  15. #define RCC_BASE     (AHBPERIPH_BASE + 0x1000)          //0x40000000+0x20000+0x1000  
  16. #define RCC          ((RCC_TypeDef*)RCC_BASE)           //時鐘相關  
  17.   
  18. typedef struct            
  19. {                   //偏移,寄存器名稱  
  20.   vu32 CR;          //0x00,時鐘控制  
  21.   vu32 CFGR;        //0x04,時鐘配置  
  22.   vu32 CIR;         //0x08,時鐘中斷  
  23.   vu32 APB2RSTR;    //0x0c,APB2外設復位  
  24.   vu32 APB1RSTR;    //0x10,APB1外設復位  
  25.   vu32 AHBENR;      //0x14,AHB外設時鐘使能  
  26.   vu32 APB2ENR;     //0x18,APB2外設時鐘使能  
  27.   vu32 APB1ENR;     //0x1c,APB1外設時鐘使能  
  28.   vu32 BDCR;        //0x20,備份域控制  
  29.   vu32 CSR;         //0x24,控制/狀態  
  30. } RCC_TypeDef;            
  31.   
  32. void delay(unsigned long i)//8M內部時鐘的超級不精確的軟延時,9倍頻后延時是之前的9倍  
  33. {  
  34.     int j;  
  35.     while(i--)  
  36.     {  
  37.         for(j=0;j<1500;j++)  
  38.         {}            
  39.     }     
  40. }  
  41.   
  42. void Stm32_Clock_Init(u8 PLL) //時鐘初始化  
  43. {  
  44.     unsigned char temp=0;     
  45.     RCC->CR|=0x00010000;  //外部高速時鐘使能HSEON  
  46.     while(!(RCC->CR>>17));//檢測第17位HSERDY為1表示外部時鐘就緒  
  47.     RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;  
  48.     PLL-=2;                             //抵消2個單位,參數匹配  
  49.     RCC->CFGR|=PLL<<18;   //設置PLL值 2~16  
  50.     RCC->CFGR|=1<<16;      //PLLSRC ON   
  51.     FLASH_ACR|=0x32;        //FLASH配2個等待周期,匹配72M系統時鐘  
  52.   
  53.     RCC->CR|=0x01000000;  //PLLON  
  54.     while(!(RCC->CR>>25));//等待PLL鎖定  
  55.     RCC->CFGR|=0x00000002;//設置PLL作為系統時鐘     
  56.     while(temp!=0x02)     //等待PLL作為系統時鐘設置成功  
  57.     {     
  58.         temp=RCC->CFGR>>2;  
  59.         temp&=0x03;  
  60.     }      
  61. }  
  62.       
  63. int main(void)  
  64. {     
  65.     Stm32_Clock_Init(9);    //啟用外部8M時鐘,9倍頻,即72M  
  66.       
  67.     {   //GPOIA的led初始化  
  68.         RCC->APB2ENR= 1<<2;      //打開PA時鐘,  
  69.         GPIOA_CRH &= 0XFFFFFFF0; //準備配置PA8 ,PA8是LED0  
  70.         GPIOA_CRH |= 0X00000003; //PA8 推挽輸出        
  71.         GPIOA_ODR |= 1<<8;       //PA8 輸出高,即先關閉led  
  72.     }  
  73.   
  74.     while(1)  
  75.     {  
  76.             GPIOA_ODR=clBit(GPIOA_ODR,8); //第8位置0,點亮led  
  77.             delay(3000);                  //用一樣的參數,和之前使用內部8M時鐘的比較效果  
  78.             GPIOA_ODR=enBit(GPIOA_ODR,8); //第8位置1,熄滅led  
  79.             delay(3000);  
  80.     }  
  81. }  
  82.   
  83. //目測led翻轉速度差不多是原來9倍
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品乱码一区二区三四区视频 | 99热在线播放 | 黄色小视频大全 | 一区二区播放 | 午夜三级网站 | 欧美成人第一页 | 一区二区三区在线免费观看 | 国产69精品久久久久777 | 成人午夜影院 | 久久精品国产99国产精品 | 在线观看国产视频 | 国产精品久久久久久久久久久久久久 | 一区二区视频 | 91精品国产高清一区二区三区 | 国产精品无码专区在线观看 | 日韩一区二区免费视频 | 精品一区二区久久久久久久网站 | 国产精品一区二区三区四区 | av大全在线观看 | 全免费a级毛片免费看视频免 | 亚洲视频三区 | 久久网站黄 | 久久国产精品免费一区二区三区 | 亚洲aⅴ | 亚洲欧美网站 | 日本黄色免费视频 | 涩涩视频大全 | 国产在线精品一区二区 | 一区二区三区免费 | 日本一道本视频 | 女同久久 | 日韩在线| 欧美综合一区二区 | 亚洲性在线| 日韩精品一区二区三区在线观看 | 人干人人| 中文精品一区二区 | 日本免费视频在线观看 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | www.9191| 国产观看 |