历史上的今天
今天是:2024年10月16日(星期三)
2018年10月16日 | STM32F030内部时钟设置
2018-10-16 来源:eefocus
如题,下面贴上我的时钟设置代码:
#define PLL_SOURCE_HSI // HSI (~8MHz) used to clock the PLL, and the PLL is used as system clock source
static void SetSysClock(void)
{
__IO uint32_t StartUpCounter = 0, HSEStatus = 0;
#if defined (PLL_SOURCE_HSI)
FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;
RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1;
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL12);
RCC->CR |= RCC_CR_PLLON;
while((RCC->CR & RCC_CR_PLLRDY) == 0)
{
}
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL)
{
}
#else
#if defined (PLL_SOURCE_HSE)
RCC->CR |= ((uint32_t)RCC_CR_HSEON);
#elif defined (PLL_SOURCE_HSE_BYPASS)
RCC->CR |= (uint32_t)(RCC_CR_HSEON | RCC_CR_HSEBYP);
#endif
do
{
HSEStatus = RCC->CR & RCC_CR_HSERDY;
StartUpCounter++;
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
if ((RCC->CR & RCC_CR_HSERDY) != RESET)
{
HSEStatus = (uint32_t)0x01;
}
else
{
HSEStatus = (uint32_t)0x00;
}
if (HSEStatus == (uint32_t)0x01)
{
FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;
RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1;
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL6);
RCC->CR |= RCC_CR_PLLON;
while((RCC->CR & RCC_CR_PLLRDY) == 0)
{
}
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL)
{
}
}
else
{
}
#endif
}
当我调试到
RCC->CR |= RCC_CR_PLLON;这条语句的时候,仿真器就不能调试了
不知是怎么回事?
上一篇:STM32 DMA详细说明
下一篇:stm32TIM输出通道配置详解
史海拾趣
|
(完全原创,)黄婆卖瓜要自卖自夸,但今天我就要狠批一下我们自己的“瓜”。 3G网络监控好处很多,能解决很多普通网络监控解决不了的问题,也为网络监控的安装简单了很多,如公交车实时监控,长途客车的实时监控,无线机站的实时监控,轮船的实时 ...… 查看全部问答> |
|
小弟的程序只有一个模式的对话框,没有createwindow主窗口, 想为对话框添加一菜单,就是右下角的“关于”选项, 参考新建程序默认的代码后,复制粘贴,可是没有效果(想了很多办法,并不是简单的复制粘贴)。 请教高手应如何添加,希望高手们能 ...… 查看全部问答> |
|
先来个全家福 这个抽奖工具是不是挺熟悉的~~~ 内部 一个12002模块,一个10501模块,一个12001芯片和一个23610芯片 10501好小! 23610恐怖,该用什么电源给它输入呢?… 查看全部问答> |
|
irqreturn_t int_interrupt(int irq,void * dev_id,struct pt_regs *regs);注册中断函数 extern int __must_check request_irq(unsigned int, irq_handler_t handler,unsigned long, const char *, void *); typedef irqreturn_t (*irq_hand ...… 查看全部问答> |




