STM32F103外部晶振由8M变为12M】的更多相关文章

STM32官方提供的库文件中,HSE(外部高速时钟)默认为8MHz,最高主频为8*9=72MHz,如果将HSE变为12MHz,不修改库文件的话,最高主频则变为12*9=108MHz,最典型的问题就是USART可以通信,但是接收到的数据与发送的不一致,并且找不到啥原因,害的我瞎折腾了一整天,下面列举需要修改的地方. 1.修改stm32f10x.h中的HSE_VALUE,原本的代码如下: #if !defined HSE_VALUE #ifdef STM32F10X_CL #define HSE_V…
共计修改三个参数: 1.HSE_VALUE   具体位置在stm32f4xx.h中 2.PLL_M          具体位置在system_stm32f4xx.c中 3.Keil编译器 工程的Options 下的Target中的Xtal(MHz) 的值为25.0 修改方法: 例子: 外部晶振是25M的 1.#define PLL_M      25 2.#define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External os…
原因一 早些年,芯片的生产制作工艺也许还不能够将晶振做进芯片内部,但是现在可以了.这个问题主要还是实用性和成本决定的.   原因二 芯片和晶振的材料是不同的,芯片 (集成电路) 的材料是硅,而晶体则是石英 (二氧化硅),没法做在一起,但是可以封装在一起,目前已经可以实现了,但是成本就比较高了. 原因三 晶振一旦封装进芯片内部, 频率也固定死了,想再更换频率的话,基本也是不可能的了,而放在外面, 就可以自由的更换晶振来给芯片提供不同的频率.有人说,芯片内部有 PLL,管它晶振频率是多少,用 PLL…
原因一 早些年,芯片的生产制作工艺也许还不能够将晶振做进芯片内部,但是现在可以了.这个问题主要还是实用性和成本决定的.   原因二 芯片和晶振的材料是不同的,芯片 (集成电路) 的材料是硅,而晶体则是石英 (二氧化硅),没法做在一起,但是可以封装在一起,目前已经可以实现了,但是成本就比较高了. 原因三 晶振一旦封装进芯片内部, 频率也固定死了,想再更换频率的话,基本也是不可能的了,而放在外面, 就可以自由的更换晶振来给芯片提供不同的频率.有人说,芯片内部有 PLL,管它晶振频率是多少,用 PLL…
如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空.2)对于少于100脚的产品,有2种接法:  2.1)OSC_IN和OSC_OUT分别通过10K电阻接地.此方法可提高EMC性能.  2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'.此方法可以减小功耗并(相对上面2.1)节省2个外部电阻. 以下是在ST英文网站FAQ上抄下的详细解释: 1) In 100…
这是我在做单片机最小系统板时候碰到的问题,之前虽然也做过相似的板子,可是未曾出现过无源晶振不起振的问题.下面是我在遇到问题后的一些检查,排除问题的过程.本人小菜鸟一个,文章中如有错误和不足,还望各位大佬指正和补充. 事情是这样的,本人做了一款32单片机最小系统板(先叫它老大),在老大出来之前的前五个月,我用相同的PCB板焊了一款用在毕设上面,那个是能正常工作的.板上有个小负载,LED灯.想让这个灯闪烁.代码是没有问题的,因为下载到从网上买的单片机是正常工作的.用JLink下载到自己做的板子上也是…
ST官方标准库V3.5默认的外部晶振频率为8M,实际使用中外部晶振需要修改为16M: 经过实验,修改有效,具体的patch如下: 修改 HSE_VALUE 值 diff --git "a/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h" "b/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h" index 8bf7624..e0a…
1. STM32f103有内部晶振.刚刚上电时,所有Clock都是源于内部晶振,所以当片内没有程序或内部程序没有使能外部晶振时,外部晶振是不会起振的.2. STM32f103有内部复位电路,只有当检测到外部电压大于电压阀值时才会启动.因为需要检测外部电压,所以模拟Ref/VDDA/VSSA不能开路,做实验是可以将Ref/VDDA与3.3V链接,VSSA与GND链接.3. 串口连接时,要记得正确配置好Boot0和Boot1引脚的电平.4. Jlink链接时,要注意是JTAG模式还是SWD模式.(一…
今天(2014.4.21)把stm32f107的程序下载到stm32f103的板子上,发现串口收不到数据,突然想起晶振频率没有修改,#define HSE_VALUE    ((uint32_t)13560000) /*!< Value of the External oscillator in Hz */ 这个要改回去,因为外接晶振是8M 之后试验,发现有数据,但是乱码.百思不得其解,无意中发现,PC的波特率设置为9600,板子的波特率设置为19200就不会乱码.刚好是2倍的关系.顺藤摸瓜问度…
一般来说,stm32f107都是用标配的晶振,比如8MHz. 但是,如果用别的晶振,比如13.56M的晶振,那串口接收还正常吗? 根据试验结果,很可能会飞码.比如说用串口助手发送的是0x35,但是在串口接收中断里面就会得到别的值,即上位机发送的数据和板子接收的数据不一致. 通过查资料,解决办法如下: 修改文件stm32f10x.h, 把 #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator i…