01CubeMx+Keil+Proteus仿真STM32(最小系统)

编程

源代码:https://github.com/LanLinnet/STM33F103R6

硬件搭建

  1. 打开Proteus,这里使用的是8.9版本,点击新建工程。
  2. 在弹出的窗口中填写工程名和保存路径,其他设置都不变,点击“下一步”直到完成即可。

  3. 在工程窗口中点击“P”图标,打开“Pick Devices”窗口,在“Keywords”中输入“STM32F103”,可以看到Proteus中能进行仿真的STM32F103芯片,这里我们选择“STM32F103R6”,双击即可将芯片添加到“DEVICES”栏。注意这里可以仿真的芯片有哪些,后面我们在Keil或CubeMX中构建时,应该选择Proteus中能仿真的芯片。

  4. 按照上面的步骤再添加一些元件,DEVICES列表如图所示。

  5. 画最小系统,包括复位电路、HSE、BOOT电路,因为在Proteus中进行仿真,所以我们不需要单独再画电源电路。最小系统如图所示。


    6.接下来需要配置供电网。点击“设计--配置供电网”,在弹出的窗口中,将“VSSA”加入“GND”,“VDDA”加入“VCC/VDD”,并将其电压改为“3.3”v。







软件编写

软件编写在“标准外设库(STD)的下载与迁移”和“HAL/LL库”中选择其中一种方式即可。“HAL库”更加简单快捷。

标准外设库(STD)的下载与迁移

  1. 下载固件库,在Overview窗口选择STM32F103R6

  2. 在新窗口中点击“Tools & Software”,点击“Quick links”中的“MCU & MPU Embedded Software”,找到“STSW-STM32054”并点击。


  3. 在新窗口中点击"Get latest"下载。

  4. 下载后会得到文件如下

  5. 我们新建一个文件夹用来存放迁移的STD库,文件夹中再新建四个文件夹(CORE、FWLIB、SYSTEM、USER)如下图所示

  6. 一些复制粘贴工作

  7. 在USER文件夹中再建立一个文件夹Project,用来存放后面要建立的工程。
  8. 打开Keil软件,点击“Project→New uvision Project”,将项目的存放位置选择在Keil/USER/Project文件夹。在弹出的窗口“Search”栏输入“STM32F103R6”,选中芯片,点击“OK”。

  9. 在弹出的“Manage Run-Time Environment”窗口中,直接点击“OK”即可。
  10. 进入项目后,点击图中“Manage Project Items”图标,在弹出的窗口中先点击添加新Groups如图所示。随后点击“Add Files”将上面迁移的文件夹中的文件都依次添加到对应的Group中,添加完毕点击“OK”即可。



    注意:由于这里使用的是STM32F103R6芯片,属于低ROM容量芯片,所以在“FWLIB”组中仅需要保留一个“startup_stm32f10x_ld.s”文件即可。若使用其它芯片,要注意选择LD、MD、HD。

  11. 点击“Options for Target”按钮,选择“Output”选项卡,勾选“Create HEX File”选项


    点击“C/C++”选项卡,在Define栏中输入“USE_STDPERIPH_DRIVER,STM32F10X_LD”(如果是MD或HD就改成对应的名称)


    随后在“Include Paths”中,先点击新建路径,随后将我们前面建立的四个文件夹都添加进去,如下图所示


    点击“OK”确认即可。

  12. 打开“main.c”文件,将其修改如下

#include "stm32f10x.h"

#include <stdio.h>

int main(void)

{

/* Add your application code here

*/

/* Infinite loop */

while (1)

{

}

}

点击运行


可以看到运行窗口显示HEX文件已创建,则固件库迁移成功。



HAL库/LL库

  1. 下载HAL库包,下拉页面找到“Get Software”,在“STM32CubeF1”处点击“Get latest”下载最新版本的HAL库包。下载完成后解压并安装。
  2. 打开STM32CubeMX,点击“ACCESS TO MCU SELECTOR”新建工程。

  3. 在弹出的“New Project from a MCU/MPU”窗口“Commercial Part Number”中填入“STM32F103R6”,在右半边的选项中选择对应的STM32芯片,点击“Start Project”。

  4. 点击“Project Manager”,配置工程名和保存路径,在“Toolchain / IDE”中选择“MDK-ARM V5.32”。
  5. 取消勾选“Use Default Firmware Location”,将“Firmware Relative Path”设置为刚刚安装的库文件的位置。

  6. 点击“Code Generator”,按照图中所示配置。

  7. 配置时钟:点击“Pinout & Configuration”,找到“RCC”,将“HSE”设置为“Crystal/Ceramic Resonator”。点击“Clock Configuration”,可根据自己的需要配置时钟频率,图中为一个可以参考的例子。


  8. 最后点击“GENERATE CODE”即可生成工程,点击“Open Project”,会自动使用Keil打开工程。

  9. 与上面STD库中生成HEX文件的方式一样,我们点击运行按钮,可以看到HEX文件成功生成,HEX文件一般存放在“CUBEMX工程文件夹/MDK-ARM/工程名”路径下,如图所示。

联合调试

  1. 在Proteus中,双击STM32F103R6芯片,打开“编辑元件”窗口。
  2. 点击文件夹图标,配置“Program File”为刚刚生成的HEX文件。
  3. 配置“Crystal Frequency”为72MHz,点击确认。

  4. 点击页面左下角的运行按钮,可以看到程序开始运行,且没有报错,表示联合调试成功。

以上是 01CubeMx+Keil+Proteus仿真STM32(最小系统) 的全部内容, 来源链接: utcz.com/z/520413.html

回到顶部