❶ stm32f10x怎么定义使用内部晶振
pllmulti = (sysclk/HSE_VALUE) - 2;//计算基于外部时钟源时,PLL的纤陆倍频因子
RCC->CR |= 1<<16; //使能外部时钟源HSE
while((RCC->CR & 1<<17) == 0); //等待外部时毁腔顷钟源就绪
RCC->CFGR |= pllmulti<<18; //设置PLL倍频
RCC->CFGR |= 4<<8; //AHB=DIV1,APB1=DIV2,APB2=DIV1,注圆枝: PCLK1不能超过36MHz
RCC->CFGR |= 1<<16; //选择HSE作为PLL时钟源
FLASH->ACR|= 0x32; //FLASH 2个延时周期
RCC->CR |= 1<<24; //PLL使能
while((RCC->CR & 1<<25)==0); //等待PLL锁定
RCC->CFGR |= 0x02; //PLL作为系统时钟
while((RCC->CFGR>>2 & 3)!=2); //等待系统时钟切换成功
RCC_GetClockFreq(&RCC_ClocksStatus); //获取系统时钟状态
}
❷ STM32板的晶振不起振,怎么办
1.
STM32f103有内部晶振。吵裂数刚刚上电时,所有Clock都是源于内部晶振,所以当片内没有程序或内部程序没有使能外部晶振时,外部晶振是不会起振的。
2.
STM32f103有内部复位电路,源枯只有当检测到外部电压大于电压阀值时才会启动。因为需要检测外部电压,所以模拟Ref/VDDA/VSSA不能开路,做实验是可以将Ref/VDDA与3.3V链接,VSSA与GND链升首接。
3.
串口连接时,要记得正确配置好Boot0和Boot1引脚的电平。
4.
Jlink链接时,要注意是JTAG模式还是SWD模式。(一般5个脚的,包含3.3V和GND的是SWD模式;引脚多的是JTAG模式。
怀疑问题很可能出在第二点。
❸ stm32不接晶振可以下程序吗
可以。
下载程序和晶振是否起振没有关系,因为stm32不用外部晶振都能运行起来,因此不用怀疑晶振滚仿的问题。
STM32系冲备陵列都有内部振荡器,所以完全可以不用外部晶振,但是内部振荡器的散戚精度不高。