STM32
直播中

王兰

13年用户 844经验值
擅长:基础元器件
私信 关注
[问答]

STM32F103和STM32F107的主要区别有哪些

STM32F103和STM32F107的晶振有何区别?
STM32F103和STM32F107的启动文件有何区别?

回帖(1)

杨柳

2021-10-15 16:14:47
  【主要区别】
  两者使用相同的stm32f10xxx reference manual,只是F107属于互联型设备,比F103多了OTG USB和Ethernet模块。
  【晶振区别】
  通常威廉希尔官方网站 板上,stm32f103采用8MHz外部晶振,stm32f107(互联型,STM32F10_CL)采用25MHz外部晶振(这时候默认时钟不用修改)。
  对应代码见V3.5.0版本固件库文件stm32f10x.h中Line115:
  
  原因:
  F103,外接8M,直接9倍频,得到72M时钟。参考手册上对应时钟树图:
  
  F107因为具有USB OTG功能,因此需要特别时钟。一般采用25M外部晶振,方便提供USB或以太网相关时钟频率,最终系统时钟为72M。参考手册上对应时钟树图:
  
  【启动文件区别】
  查看F103对应的startup_stm32f10x_hd.s文件和F107对应的startup_stm32f10x_cl.s文件。Diffuse对比一下,发现只有OTG USB模块和Ethernet模块相关的中断及响应函数区别,再没有其它不同:
  
  【总结】
  所以程序在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。
  注意各个时钟频率,一个外部8M,一个外部25M,设定值影响时钟树。
  替换程序启动文件。F103对应startup_stm32f10x_hd.s(大容量),F107对应startup_stm32f10x_cl.s,仅和OTG、Ethernet中断有关。
  相应驱动文件的管脚绑定,要做对应改变。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分