
1.STM32F105库函数默认使用的是25MHZ晶振: 通过下面配置,最终得到系统时钟72MHZ: /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */ /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */ RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 | RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5); 2. 如果使用的是8MHZ晶振,那怎么配置呢? 通过下面配置既可,最终得到系统时钟72MHZ: /* PLL2 configuration: PLL2CLK = (HSE / 8) * 8= 8 MHz */ /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 1 = 8 MHz */ RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV8| RCC_CFGR2_PLL2MUL8 | RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV1); 3.那么,问题来了,为什么要使用25MHZ晶振呢? 看图一 然而,105并没有带有以太网。107相对105就多个以太网,以太网正好用到了25MHZ,而105,107都带有USB OTG功能,所以,就把这两个划分为一类,库函数,也就通用了! 4.当然,如果不修改,也可以使用8MHZ晶振,那么系统时钟就是:((64)/(25))*9=23.04MHZ 结果可想而知。 |
å¾ä¸
105芯片,固件库默认使用的是25MHZ,如果,使用8MHZ晶振的话,可以按照第二个修改固件,就可以使用!
这个还真没有用过!
level up!
没用过CUBE,今天也尝试着用用!
刚开始用会很不习惯,与之前的概念比较容易混淆。
不过对刚接触ST的朋友比较适用。
基于HAL库,它的数据结构体比较庞大,而且大多要挂全局变量!生成的代码一下子大了很多!
还是喜欢以前的小巧。
个人感觉的优点是:做测试比较方便,代码自动化程度高,节省了大量写驱动的时间。
个人感觉的缺点是:做应用的话,最好还是把调好的代码再转成寄存器操作,减少全局变量的开销。那样选型的空间比较大!
(个人愚见,仅供参考!)
看你的积分,就知道你是老用户了,意见还是比较中肯的!谢谢!
论坛,我算半个新人(蝴蝶粉),互相学习。