1、自己做了个STM32的板子,,但是手里没有8M的晶振,所以就用了,12M的,,但是不正常,上电之后PA15和PA14接的是两个led,PA15接的led常亮,PA14接的的led不亮,,而且芯片下载程序又能下载,应该不是芯片坏的问题吧,,而且不管我些什么程序进去,两个脚的状态都不变,,我怀疑是电路有问题,,可是我仔细检查了电路和板子,都没问题,,JTAG正常使用。我用的是12M的晶振,这会有影响吗?感觉不管下什么程序进去感觉芯片好像没有运行。
答:如果使用12M的晶振,那么要修改启动文档中的关于RCC的语句。
因为如果你使用库文件的话,ST的库,默认外部晶振是8M,所以如果你不修改RCC部分的语句,会造成CPU不启动,或者启动不成功。现象是,在MDK环境下,能够通过JTAG识别到芯片,但是无法下载或者debug。会提示can not attach CPU。
2、突然想到这个问题,外部无源晶振选择大小的区别是什么?对STM32芯片它都要先分频,再倍频。
我在想,假设,如果它分频都要降到2M,再倍频上去
那我直接2M的晶振1分频再倍频,跟24M先12分频再倍频他们的区别是什么?还是说本身就是任意的,根据自己需要选择?答:方便各种应用场景。
3、自己做的STM32F103RBT6板子,外接8M晶振,现在程序下载正常,运行正常,在程序初始化时用到Stm32_Clock_Init(9)这条语句,我想问下是不是外部晶振如果没起振在执行这条语句时会停止?也就是说我的程序下载和运行都正常说明外部晶振肯定起振了,而且已经倍频到72M了。
答:默认是用内部8M RC震荡的,你切换为PLL之后,才是使用8M倍频的,如果你注释掉Stm32_Clock_Init(9),那么代码也会跑,但是是用内部8M RC震荡。
4、外部晶振换成了25MHz,但是想方便的移植以前8MHz板子上程序,应该怎么修改系统时钟?看了system_stm32f10x.c系统时钟设置,但是不知道怎么修改!求指点谢谢下面参数是system_stm32f10x.c系统时钟设置
//默认SYSCLK_FREQ_72MHz可在system_stm32f10x.c改变设置//默认HCLK = SYSCLK;
RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; //默认PCLK2 = HCLK
RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; //默认PCLK1 = HCLK
RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;
//默认PLL as system clock source;RCC_CFGR_SW_PLL;答:25M不用想了,必须是25的整数倍才行。
原子哥要是把它设置成75MHz具体怎么修改哪些配置参数?25*3=75了
设置倍频数为3.
但是库函数这个不懂,寄存器的就很简单
5、STM32的RTC不能用,想确定是否硬件问题。但不知道测量的是哪2个引脚。希望知道的高手指教一下
答:1,去掉RTC晶振的电容2,换晶振.