由于芯片价格上涨,产品成本增加,选用APM32F103RCT6替代STM32F107RCT6,原本板子上使用的是STM32F107RCT6,没有使用网络功能,使用的时钟源是25MHZ的外部晶振,开发平台是keil5。

1、是根据引脚的数量和容量大小进行区分的,两款芯片可以通用。

2、标准固件库也一样。

3、外部晶振有差异107默认使用25MHZ 103一般默认8MHZ。

4、如果不使用网络,OTG、以太控制器,两款芯片基本可以完成替换。

这些是背景的介绍。

要完成芯片的替换,主要考虑两件事:

1、考虑外部晶振、107是互联型 MCU区别与F103,因为他们具有USB OTG功能,因此需要特别的时钟。一般我们使用外部25MHZ振晶,方便提供USB或以太网相关时钟频率。而103 HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。因此很明显,我们第一个要考虑的是外部晶振的适配。对于此问题,有两种解决方式,一、是修改外部晶振,把25MHZ的晶振替换为4MHz~16MHz这个范围内的晶振,最好是8MHZ,官方推荐的是8MHZ,但是8MHZ价格比较高,国内的8MHZ精度达不到。价格大概是2元一块,如果是用于生产产品,则推荐使用16MHZ,因为16MHZ的晶振价格便宜,大约是0.4元。由于,我手头只有一块12MHZ的晶振,下面我将以12MHZ晶振芯片为例,介绍一下,我的配置过程。二、是使用内部的HSI 8MHZ晶振。

2、考虑107和103芯片型号的替换。

下面是具体操作步骤。

(1)、首先把板卡上的25MHZ晶振替换成12MHZ晶振芯片,然后,用烙铁把STM32F107RCT6芯片去掉,重新焊接APM32F103RCT6。

(2)点击魔术棒,

选择APM32103RC这个包,其实选择STM32103RC的包也能用,我试过可以用。然后点击OK

(3)选择12MHZ

(4)、F103对应的startup_stm32f10x_hd.s文件和F107对应的startup_stm32f10x_cl.s文件。

F103对应STM32F10X_HD(大容量),F107对应STM32F10X_CL。(互联型产品)

在stm32f10x.h中有对外部晶振频率的宏定义,并且在注释中有提到为了避免修改该库文件,用户可以在工具链编译器预处理中定义该值

(5)、根据上图步骤8和下表选择第十步要添加的内容。

#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) &&
!defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) /* #define STM32F10X_LD */     /*!< STM32F10X_LD: STM32 Low density devices *//* #define STM32F10X_LD_VL */  /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */  /* #define STM32F10X_MD */     /*!< STM32F10X_MD: STM32 Medium density devices *//* #define STM32F10X_MD_VL */  /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */  /* #define STM32F10X_HD */     /*!< STM32F10X_HD: STM32 High density devices *//* #define STM32F10X_HD_VL */  /*!< STM32F10X_HD_VL: STM32 High density value line devices */  /* #define STM32F10X_XL */     /*!< STM32F10X_XL: STM32 XL-density devices *//* #define STM32F10X_CL */     /*!< STM32F10X_CL: STM32 Connectivity line devices */
#endif

(6)、修改程序配置

进入SetSysClockTo72()函数 由于在步骤8中选的是CL因此实际执行的是else的内容,外部晶振为12,目标是72 72 =12*6 按照如图修改。

剩下的就是编译烧写程序。

因本人知识能力有限,可能存在错漏之处,欢迎指正。

APM32F103RCT6替代STM32F107RCT6程序不变相关推荐

  1. ChatGPT会替代初级程序员吗?

    不会.ChatGPT 是一种人工智能技术,可以帮助人们快速生成文字内容,但它并不能替代初级程序员的工作.它不能独立完成复杂的编程任务,也不能自主解决程序错误.初级程序员在开发.测试和维护软件系统方面仍 ...

  2. 如何成为不可替代的程序员?掌握这个方法,裁员名单永远没有你

    互联网的快速迭代发展,使得这个行业人员流动性较大,即使是程序员这种高技术的核心人才,也会存在大浪淘沙下,被优胜劣汰的可能. 因此,作为一名程序员,应该具备哪些素质,才能避免被公司.被行业所淘汰,始终是 ...

  3. 上可以替代mobaxterm_解读:替代性程序——函证重灾区(干货)

    北京时间2018年9月11日,深圳证监局发布<会计监管工作通讯>(2018年第4期).这一期的主题是函证程序. 2018年5-6月,深圳证监局对14家会计师事务所承做的深圳辖区28个审计项 ...

  4. AlphaCode能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了...

    来源:AI前线 作者:Ben Dickson 译者:王强 策划:冬梅 本文属于我们的人工智能研究论文评论系列,这个系列旨在探讨人工智能领域的最新研究成果. DeepMind 是最新的人工智能研究实验室 ...

  5. stm32h7b0替代h750程序导致单片机挂掉无法烧录程序问题

    h750是480M, h7b0是280M 如果直接用H750的程序,会导致单片机挂掉, 用jlink去读保护没作用, 用stlink连接不上 1 先用jlink去读保护 2 再下载最新的stm32h7 ...

  6. 废掉一个程序员最好的方法,让他忙碌着,忙碌到没时间思考

    文|洪生鹏,来自|爱开发 01 好友老张最近又跳槽了,薪资比之前翻了一番,电话里说要请我们吃饭,印象中老张几乎是一年一跳.老张是一名java程序员,工作6年已经跳槽4次了.加上这次算5次了. 对于程序 ...

  7. 其实,咱们程序员过了30岁,还可以更牛逼!

    来自:网络 程序员干到30岁,好不容易从码奴混到了白领,却再也干不动了,还时时面临失业的危险.30岁,是一个程序员伤不起的年龄.明天,何去何从? 一.30岁现象 在官场上,曾经有一个59岁现象,就是官 ...

  8. 程序员伤不起的年龄——30岁

    程序员干到30岁,好不容易从码奴混到了白领,却再也干不动了,还时时面临失业的危险.30岁,是一个程序员伤不起的年龄.明天,何去何从? 一.30岁现象 在官场上,曾经有一个59岁现象,就是官员们会在59 ...

  9. 协助你写 Python,只是 AI 取代程序员的第一步

    By 超神经 按照 AI 现在发展的态势,应该是计划先取代送货员,再取代驾驶员,接着取代前台.保安.售票员等等.最后总有一天会把魔爪伸向一手打造他们的工程师,不过在这一天来临之前,AI 计划先和程序员 ...

最新文章

  1. 适合做生物信息的笔记本推荐
  2. macos nginx php mysql_mac环境下搭建nginx + php + mysql开发环境
  3. 最简洁的方式,实现web端百度地图一键定位导航
  4. java volatile 原子性_Java并发编程之验证volatile不能保证原子性
  5. C#曲线分析平台的制作(一,ajax+json前后台数据传递)
  6. MapReduce输出压缩格式文件
  7. Springboot+Vue前后端分离在线答题+题库管理系统
  8. 天地图矢量mxd版标准地图
  9. gcc 如何编译cpp文件啊
  10. Java关于中查询数据时,报错java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 -> 1的问题
  11. 前端之路:一款轻量的tooltip插件tippy.js
  12. 利用混合高斯模型实现视频中运动目标与背景的分离
  13. 新东方报名系统服务器地址,新东方邮箱服务器地址
  14. Ps|无规律渐变效果
  15. 2015浙大计算机考研,2015浙大计算机考研机试题解.pdf
  16. 【数学建模】多元回归分析模型(评价与决策)
  17. 战意显示与服务器断开连接,战意不删档6.8开启 服务器竟然可以这样开
  18. STM32c8t6串口+蓝牙控制PC13亮灭
  19. Linux之(27)networkctl命令
  20. 立足现实 与时俱进:C++ 1991-2006 reference

热门文章

  1. 好爸爸陪宝宝必做的50件小事儿
  2. db2 存储过程异常处理
  3. 无法打开包括文件:“afxcontrolbars.h”
  4. 出现警告defaultlib library conflicts with use of other libs; use /NODEFAULTLIB:library .
  5. css样式,后代选择器
  6. Python isdigit() isalnum()
  7. css tips —— 神奇的max-width,min-width, width覆盖规则
  8. ES9新特性_ES9正则扩展-反向断言---JavaScript_ECMAScript_ES6-ES11新特性工作笔记055
  9. ES6新特性_ES6箭头函数以及声明特点---JavaScript_ECMAScript_ES6-ES11新特性工作笔记009
  10. k8s核心技术-Helm(自定义chart部署)---K8S_Google工作笔记0047