|
【主要区别】: H* Q% ^; L# | z: y 两者使用相同的stm32f10xxx reference manual,只是F107属于互联型设备,比F103多了OTG USB和Ethernet模块。 8 [6 o6 \. E# @1 }( L3 i$ l, | 【晶振区别】& p8 q$ ~- u* s" I# O- ` 通常电路板上,stm32f103采用8MHz外部晶振,stm32f107(互联型,STM32F10_CL)采用25MHz外部晶振(这时候默认时钟不用修改)。! _1 _9 L' o4 X n) p: Q; s2 { + w; d* u1 P' E& c 对应代码见V3.5.0版本固件库文件stm32f10x.h中Line115:6 R* N! a2 ]9 J* [) ~
% S/ R, t& \' @ 原因:! v! @& t3 D3 i `# O# d, J, g: E F103,外接8M,直接9倍频,得到72M时钟。参考手册上对应时钟树图: * F c3 t( M1 A2 z; A$ C4 Q
, t+ S% C) S) V- v6 C( m F107因为具有USB OTG功能,因此需要特别时钟。一般采用25M外部晶振,方便提供USB或以太网相关时钟频率,最终系统时钟为72M。参考手册上对应时钟树图:! v& n2 Q/ ? B* l* V8 J
# v9 p$ S7 R3 P1 [& k 【启动文件区别】 查看F103对应的startup_stm32f10x_hd.s文件和F107对应的startup_stm32f10x_cl.s文件。Diffuse对比一下,发现只有OTG USB模块和Ethernet模块相关的中断及响应函数区别,再没有其它不同:
# u! `& p" d* [* H- w% i8 V; R# g# E6 u 【总结】& G% I0 q2 X/ p4 W) D4 D 所以程序在F103和F107间移植时只用改变: Options->Device,名称更改。 Options->C/C+±>Define,预编译头文件更改,F103对应STM32F10X_HD(大容量),F107对应STM32F10X_CL。 Options->Debug->Settings->Flash Download->Programming Algorithm,F107对应STM32F10x Connectivity Line Flash。* G4 u" {6 @' l+ ` 注意各个时钟频率,一个外部8M,一个外部25M,设定值影响时钟树。 替换程序启动文件。F103对应startup_stm32f10x_hd.s(大容量),F107对应startup_stm32f10x_cl.s,仅和OTG、Ethernet中断有关。 相应驱动文件的管脚绑定,要做对应改变。! t( P* {8 K* ]/ N# ` l ————————————————' [: U a( I# {: U 版权声明:一只嵌入式爱好者 如有侵权请联系删除 |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版