Proteus仿真stm32f103R6Tx——外部中断控制LED亮灭(Cube MX+Keil5+proteus)

前言

为了熟悉使用proteus相关操作并结合HAL库进行代码编写,本文介绍通过外部中断控制LED亮灭,以及自己在探索阶段出现的一些问题与相关解决资料。部分基础操作与上一篇Proteus基础操作介绍基础部分介绍相同,本文将略去。如有表述不妥之处,还望指正。

Cube MX配置

SYS、RCC、Clock Configuration部分配置不再赘述

GPIO

PA1、PA2设置中断EXIT,下降沿Falling Edge,上拉电阻(Pull up)
PA4、PA5连接两个LED
在这里插入图片描述

NVIC

开启中断,如果不需要用到HAL-Delay等优先级会发生冲突的函数,则不需要设置此处优先级。
在这里插入图片描述

Keil5 代码编写

main.h

宏定义待设置端口位

/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN Private defines */
#define key1_GPIO_Pin GPIO_PIN_1
#define key2_GPIO_Pin GPIO_PIN_2

/* USER CODE END Private defines */

gpio.c

/* USER CODE BEGIN 2 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	switch(GPIO_Pin)
	{
		case GPIO_PIN_1://进入PA1按键触发的中断
			HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_4);break;//翻转PA4电平,LED由亮变灭或反之
		case GPIO_PIN_2://进入PA2按键触发的中断
			HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);break;//翻转PA5电平,LED由亮变灭或反之
		default:break;
	}
}

/* USER CODE END 2 */

proteus仿真

原理图如下
在这里插入图片描述
按下第一个开关,D1灭
在这里插入图片描述
再按一次:重新D1亮起。
在这里插入图片描述

另一个按键也能实现同样的功能。

其他可能的疑问

proteus电路仿真设计图中很多器件之间没有实线连线,它们是怎么实现的?
上拉电阻与下拉电阻有什么作用

  • 6
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
以下是在Keil5中新建STM32F103C6项目并进行Proteus仿真的步骤: 1. 打开Keil5软件,在菜单栏点击“Project” -> “New µVision Project”(也可以直接使用快捷键“Ctrl+Shift+N”)。 2. 在弹出的“New Project”窗口中,选择“STMicroelectronics” -> “STM32F10x” -> “STM32F103C6”(如果没有该选项,需要先安装相应的支持包),然后输入项目名称和存储路径,最后点击“Save”按钮。 3. 在弹出的“Create Project”窗口中,选择“CMSIS”和“Device Startup”两个选项,并且可以根据需要勾选其他选项,然后点击“OK”按钮。 4. 在左侧的“Project”窗口中,展开“Source Group” -> “Source Files”节点,双击“startup_stm32f10x_hd.s”文件,将其添加到项目中。 5. 在左侧的“Project”窗口中,展开“Target 1” -> “Device”节点,双击“stm32f10x.h”文件,将其添加到项目中。 6. 在左侧的“Project”窗口中,展开“Target 1” -> “Source Group” -> “Source Files”节点,双击“main.c”文件,将其添加到项目中。 7. 编写程序代码,然后编译生成可执行文件。 8. 打开Proteus软件,在菜单栏点击“Library” -> “Library Manager” -> “Pick Devices” -> “Microcontroller” -> “STMicroelectronics” -> “STM32F10x” -> “STM32F103C6”(如果没有该选项,需要先安装相应的模型库),然后点击“Open”按钮。 9. 在Proteus中绘制电路图,并且添加STM32F103C6芯片模型和必要的外围电路。 10. 双击STM32F103C6芯片模型,弹出“Edit Component”窗口,在“Program File”选项中选择Keil5生成的可执行文件,然后点击“OK”按钮。 11. 在Proteus中运行仿真,验证程序逻辑和电路设计是否正确。 注意事项: 1. 在新建Keil5项目时,需要选择正确的芯片型号和支持包。 2. 在添加源文件和头文件时,需要注意文件路径和名称是否正确。 3. 在Proteus中添加芯片模型时,需要选择正确的型号和模型库,并且与Keil5生成的可执行文件相对应。 4. 在运行仿真时,需要确保电路连接和程序逻辑正确无误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Drawing Ting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值