第1点:
我们用户编写的代码,必须放在 user code begin 和 end 之间;否则,当我们修改stm32cubemx 项目的 配置时,再次生成代码,就会删除之前的代码;正确做法如下图所示:
我们用户编写的代码,必须放在 user code begin 和 end 之间
第2点:
在proteus中,电源需要更改成3.3v,vdda添加到电源vcc/gnd中去;vssa添加到gnd中去;如下图所示:
电源需要改成3.3v
第3点:
hal_delay(__io uint32_t delay)延时函数在stm32f1xx_hal.c里面,该函数能实现ms级别的延时;该函数体前面有一个关键字__weak,该关键字简单的说,表明该函数允许被重写。
hal_delay(__io uint32_t delay)
第4点:
在proteus中,由于proteus中 软件的问题,导致程序中虽然io口设置了内部上拉,但在proteus仿真软件中,却是开漏的(也就是说io口没有高电平状态)。
而我们stm32单片机的外部中断,需要io口出现一个下降沿或者上升沿,才可以触发中断。所以我们在io口外面加上拉电阻,便于产生跳边沿,进而触发外部中断;
下图所示led的限流电阻r1,不能设置过大,设置太大会导致流过led的电流过小,led不发光。本次我们设置成100ω,让实验现象更加明显。
需要添加上拉电阻,限流电阻不能太大
第5点:
下图所示的这个按键称为自锁按键, 按下去之后是不会弹起来的,始终保持当前状态;
我们在做外部中断实验时需要轻触按键,这种按键是按下去之后是会弹起来的,会恢复之前的状态。
自锁按键
轻触按键
第6点:
在keil软件中,一定要勾选上creat hex file选项,这样项目编译之后才会生成hex文件,proteus软件加载hex文件,实现stm32单片机程序的仿真。
还有就是在keil代码中,修改了代码一定要重新编译,然后再在proteus中去观察实验现象。
最后
注意上述几点,就能将外部中断实验成功的进行下去了。
中断回调函数代码如下图所示,实现两个按键分别控制led的亮和灭;
两个按键分别控制led的亮和灭;
实验现象
华为Mate9保时捷版 vs 金立M2017 什么样的国产手机才能摆脱「性价比」?
米粉欢呼! 雷军自曝小米6本月发布 骁龙835+双摄+无耳机孔
三星S8设计有缺陷? 三星S8被迫执行“B计划”
智慧水产养殖设备是什么
人工智能疫情机器人是如何服务的
使用proteus仿真STM32单片机的注意事项
重庆:加快打造新能源和智能网联汽车研发制造基地,明年3月举办中国汽车技术展
你养的起国六柴油车吗?清洗DPF代价有点大
端点智能
如何构建基于555定时器的警笛电路
工业和信息化部关于印发《工业互联网标识管理办法》通知
家教儿童智能机器人:小慧
机器视觉检测设备的功能与价格决定因素
苹果眼镜或能自动解锁iPhone 有这专利还怕苹果摘了眼镜不解锁
喜讯:希荻微HL5301高通参考设计再下一城
TFN 电缆故障测试仪的系统组成及功能介绍
2010美国西部安防展|2010美国国际安防展
常用于缓存处理的机制总结 如何避免缓存雪崩问题?
CEVA宣布推出动态扬声器管理软件在CEVA-TeakLite-4系列上提供使用
NXP/英飞凌/瑞萨汽车电子主要营收首次变为中国