void SetHsiClockUser(void)
{
isHseHsiCntFlag |=0x02;
Hse1Hsi0User = 0;
PLL_M =16;
RCC->CR |= ((uint32_t)RCC_CR_HSION); //bit0, HSION置1即打开HSI振荡器
while((RCC->CR & RCC_CR_HSIRDY)==0)
{
}
/* Select regulator voltage output Scale 1 mode */
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;//bit4~7,HPRE是AHB预分频(当使用以网时,AHB时钟频率至少为25MHz),不分频
{
isHseHsiCntFlag |=0x02;
Hse1Hsi0User = 0;
PLL_M =16;
//添加使用内部振荡源,HSI时钟信号由内部为16MHzRC振荡器生成,可直接用作系统时钟,或者用作 PLL 输入
RCC->CR &= ~((uint32_t)RCC_CR_HSEON);//bit16,HSEON置0即关闭HSE振荡器RCC->CR |= ((uint32_t)RCC_CR_HSION); //bit0, HSION置1即打开HSI振荡器
while((RCC->CR & RCC_CR_HSIRDY)==0)
{
}
/* Select regulator voltage output Scale 1 mode */
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
//bit28,PWREN置1即打开APB1时钟的电源
PWR->CR |= PWR_CR_VOS;
//应该是PWR_CR_VOS_0才对,主要是PWR_CR_VOS把bit15置1,而手册上说bit15~31保留,必须保持复位值。bit14,VOS置1,设置性能与功耗的平衡
/* HCLK = SYSCLK / 1*/RCC->CFGR |= RCC_CFGR_HPRE_DIV1;//bit4~7,HPRE是AHB预分频(当使用以网时,AHB时钟频率至少为25MHz),不分频