如何看懂STM32F1xx开发手册

目录

 

STM32F1xx开发版初始函数

时钟控制寄存器(RCC_CR)

0x0000 0001是什么意思

时钟配置寄存器RCC_CFGR

二进制与十六进制转换方法


STM32F1xx开发版初始函数

void SystemInit (void)
{
  
  RCC->CR |= (uint32_t)0x00000001;

 
#ifndef STM32F10X_CL
  RCC->CFGR &= (uint32_t)0xF8FF0000;
#else
  RCC->CFGR &= (uint32_t)0xF0FF0000;
#endif /* STM32F10X_CL */   
  
 
  RCC->CR &= (uint32_t)0xFEF6FFFF;

 
  RCC->CR &= (uint32_t)0xFFFBFFFF;

  
  RCC->CFGR &= (uint32_t)0xFF80FFFF;

#ifdef STM32F10X_CL
 
  RCC->CR &= (uint32_t)0xEBFFFFFF;

 
  RCC->CIR = 0x00FF0000;

 
  RCC->CFGR2 = 0x00000000;
#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)

  RCC->CIR = 0x009F0000;

 
  RCC->CFGR2 = 0x00000000;      
#else
 
  RCC->CIR = 0x009F0000;
#endif /* STM32F10X_CL */
    
#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
  #ifdef DATA_IN_ExtSRAM
    SystemInit_ExtMemCtl(); 
  #endif /* DATA_IN_ExtSRAM */
#endif 


  SetSysClock(); /*设置系统时钟*/

#ifdef VECT_TAB_SRAM
  SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else
  SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif 
}

时钟控制寄存器(RCC_CR)

/*内部高速时钟使能开启  或  内部8MHz振荡器开启。*/ 
 RCC->CR |= (uint32_t)0x00000001;
同
RCC->CR =RCC-> CR |(uint32_t)0x00000001;

x表示可以是0也可是1

 

 

0x0000 0001是什么意思

时钟配置寄存器RCC_CFGR

#ifndef STM32F10X_CL                  /*如果没有定义 STM32F10X_CL */
  RCC->CFGR &= (uint32_t)0xF8FF0000;  /*执行语句*/ 
#else                                 /*如果定义了则...或者  否则...  执行  MCO的两位清零,不往外输出时钟,0-15位清零,PLCK 2分频给ADC,HCLK不分频给APB2*/
  RCC->CFGR &= (uint32_t)0xF0FF0000;  /*执行语句   HCLK不分频给APB1,sysclk不分频给AHB,HSI用作系统时钟,*/
#endif                                /*结束*/

#ifdef STM32F10X_CL 接着是一些函数,意思是当定义了 STM32F10X_CL时下面的函数起作用。到底STM32F10X_CL是什么?什么时候定义它呢?原来STM32F10X_CL代表的是使用了 STM32互联系列微处理器也就是STM32F105和STM32F107系列处理器。

0xF8FF0000  转换为二进制   1111 1000 1111 1111 0000 0000 0000 0000

 F0FF0000转换为二进制  1111 0000 1111 1111 0000 0000 0000 0000

二进制与十六进制转换方法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭日初扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值