这段时间一直在用stm32f4,先把我的板子放出来秀一秀,去年12月做了第一版的板子,
详见:https://bbs.eeworld.com.cn/thread-313004-1-1.html
由于F4的芯片比较贵,我把它做成底板+核心板模式的,由于STM32F1,F2,F4系列芯片的引脚基本兼容,
核心板可以同时三个系列的芯片,在第一个版本的板子上,由于没有细看芯片手册,导致板子出现一个bug,
不能同时兼容三个系列的芯片。
在同一个板子上同时兼容STM32F1、F2、F4三个系列的设计方法,stm32f4的芯片手册上写的很清楚了,这里
我就不多介绍。
这次是第二版的板子,见图片:
板子上的功能模块有:LED、USB转串口(CP2102)、USB-OTG.
官方的STM32F4板子上使用25M的晶振,我的板子上还是使用8M的晶振,晶振更换后,如果需要做串口,USB等模块
的实验,需要修改部分代码,在介绍代码修改方法前,我首先介绍下IAR和MDK两个集成开发环境的例程:
IAR:
IAR从6.1版本开始支持STM32F4,在安装目录下:..\IAR Systems\Embedded Workbench 6.0\arm\examples\ST
有STM32F4的外设例程,例程如下所示:
使用8M的晶振,需要在官方例程的基础上修改两个宏定义:
1)在systm_stm32f40x.c中将PLL_M修改为8
2)在stm32f40x.h中将HSE_VALUE修改为8000000,如下:
#define USED_HSE_8M
#if !defined (HSE_VALUE)
#ifdef USED_HSE_8M
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External
oscillator in Hz */
#else
#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#endif
#endif /* HSE_VALUE */
MDK:
在MDK4.5中,已经有keil官方stm32f4开发板的例程,大家可以参考,使用8M晶振时,记得修改
在systm_stm32f40x.c中将PLL_M修改为8。 由于MDK的例程没有使用st的库,所不存在修改
HSE_VALUE
原理图:
其他问题,明天再补充吧
[
本帖最后由 05210324kw 于 2012-3-31 14:52 编辑 ]