STM32F103XX不同系列与Proteus仿真的问题解决

问题

  • 当我们使用Proteus8.10时,存在一个普遍的问题,我们已经习惯了利用正点原子的例程进行实际设计,而仿真软件中其实是没有STM32F103ZE系列,那么我们要进行联合仿真会有一些麻烦,本文基于此提出一个比较完备的方案。

STM32F103XX系列区别

  • 我们通过官方手册可以有一个直观的理解
    STM32F103XX不同系列与Proteus仿真的问题解决_第1张图片
  • 当然除了在容量方面,其实在uart等外设个数方面也是存在不同
  • 容量方面分为L、M、H三种容量,这也是为什么我们经常不能移植成功的原因,这三种容量分别对应着三种不同的启动程序
  • 今天我们主要解决的是联合仿真中如何将正点原子例程直接进行仿真,因此,我们主要想解决的是通过启动方式的不同来直接使用例程进行仿真

以正点原子第一个点灯为例全流程进行复述

  • 首先我们对这个原始工程直接修改其芯片类别
    STM32F103XX不同系列与Proteus仿真的问题解决_第2张图片
  • 其次我们需要明白,仿真中的R6和ZE本质上一个是大容量一个是小容量,因此,这里需要修改一个宏定义
    STM32F103XX不同系列与Proteus仿真的问题解决_第3张图片
    即为将STM32F10X_HD变为STM32F10X_LD
  • 最后,我们最好将启动文件进行修改
    STM32F103XX不同系列与Proteus仿真的问题解决_第4张图片
    修改此处的strtup_stm32f10X_hd.s变为strtup_stm32f10X_ld.s
    strtup_stm32f10X_ld.s需要自己在官网或者其他地方找到
  • 至此,我们进行Proteus时就可以直接使用正点原子的例程了
    STM32F103XX不同系列与Proteus仿真的问题解决_第5张图片
    STM32F103XX不同系列与Proteus仿真的问题解决_第6张图片

总结

  • 总的来说,其实主要思想就是不同的容量,我们需要对两部分进行修改
    • 芯片自身的启动文件即 STM32F10X_HD.s文件。
    • 对于原始封装的库,虽然库不用改变,但是需要更换宏定义,这样相当于改变了原有的部分库代码,使得当前代码符合容量不同的芯片进行操作。

你可能感兴趣的:(stm32,proteus,单片机)