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

描述

第1点:

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

STM32

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

第2点:

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

STM32

STM32

电源需要改成3.3V

第3点:

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

STM32

HAL_Delay(__IO uint32_t Delay)

第4点:

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

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

STM32

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

第5点:

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

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

STM32

自锁按键

STM32

轻触按键

第6点:

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

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

STM32

最后

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

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

STM32

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

STM32

实验现象

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分