使用proteus仿真STM32单片机的注意事项

2023-08-03  

第1点:

我们用户编写的代码,必须放在 user code begin 和 end 之间;否则,当我们修改stm32cubemx 项目的 配置时,再次生成代码,就会删除之前的代码;正确做法如下图所示:

poYBAGQbv7mAYfgmAAFQyKPydnY679.png

我们用户编写的代码,必须放在 user code begin 和 end 之间

第2点:

在proteus中,电源需要更改成3.3V,VDDA添加到电源VCC/GND中去;VSSA添加到GND中去;如下图所示:

pYYBAGQbv8mAIOQ1AACws9gFHZ0245.png

pYYBAGQbv9uAfq5xAADJu0padpg804.png

电源需要改成3.3V

第3点:

HAL_Delay(__IO uint32_t Delay)延时函数在stm32f1xx_hal.c里面,该函数能实现ms级别的延时;该函数体前面有一个关键字__weak,该关键字简单的说,表明该函数允许被重写。

pYYBAGQbv-uAOMYoAANrJ4nE1xc807.png

HAL_Delay(__IO uint32_t Delay)

第4点:

在proteus中,由于proteus中 软件的问题,导致程序中虽然IO口设置了内部上拉,但在proteus仿真软件中,却是开漏的(也就是说IO口没有高电平状态)。
而我们STM32单片机的外部中断,需要IO口出现一个下降沿或者上升沿,才可以触发中断。所以我们在IO口外面加上拉电阻,便于产生跳边沿,进而触发外部中断;

下图所示LED的限流电阻R1,不能设置过大,设置太大会导致流过LED的电流过小,LED不发光。本次我们设置成100Ω,让实验现象更加明显。

poYBAGQbv_2AIMNIAAHjAT5F54c805.png

需要添加上拉电阻,限流电阻不能太大

第5点:

下图所示的这个按键称为自锁按键, 按下去之后是不会弹起来的,始终保持当前状态;

我们在做外部中断实验时需要轻触按键,这种按键是按下去之后是会弹起来的,会恢复之前的状态。

pYYBAGQbwBGAaHIBAAId9e6q-l0596.png

自锁按键

pYYBAGQbwCOAeQYoAAA7U2qoyqU482.png

轻触按键

第6点:

在keil软件中,一定要勾选上Creat HEX File选项,这样项目编译之后才会生成HEX文件,proteus软件加载HEX文件,实现STM32单片机程序的仿真。

还有就是在keil代码中,修改了代码一定要重新编译,然后再在proteus中去观察实验现象。

poYBAGQbwDKACL2KAAGdgqbfjms838.png

最后

注意上述几点,就能将外部中断实验成功的进行下去了。

中断回调函数代码如下图所示,实现两个按键分别控制LED的亮和灭;

pYYBAGQbwEOAG44EAAIng262Okk314.png

两个按键分别控制LED的亮和灭;

poYBAGQbwFqAU0i-AAHNC5S4UPY753.png


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。