当前位置: 代码迷 >> 综合 >> (2)Proteus 8.9上的STM32仿真系列(HAL)---按键输入控制LED
  详细解决方案

(2)Proteus 8.9上的STM32仿真系列(HAL)---按键输入控制LED

热度:66   发布时间:2024-02-06 21:14:20.0

(2)Proteus 8.9上的STM32仿真系列(HAL)—按键输入控制LED

设计方案:按钮按一下,灯亮,再按一下灭。如此反复。
一、proteus的配置见第一节
如下搭建原理图(STM32 F103C6,和第一节一样)
在这里插入图片描述
二、cubemax ide配置
1.使能rcc配置和PB0/PB1,如上一节。再将PB6配置为输入模式。
在这里插入图片描述
2.Project-》generate code或点击这个小齿轮
在这里插入图片描述
3.在main.c处插入如下代码
(1)生成bin和HEX文件配置(重要),菜单project-》properties-》c/c++ build-》settings-》MCU Post build outputs,勾选binary和hex结尾那两项。 apply and close.
(2)Project-》build all

// An highlighted block/* USER CODE BEGIN WHILE */while (1){if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6)==GPIO_PIN_SET)//检测按钮是否按下,如按下检测LED引脚电平,将其置反{if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0)==GPIO_PIN_SET)HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_RESET);elseHAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_1, GPIO_PIN_SET);}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */

三、打开proteus,如上节设置晶振频率,配置供电网。
program file选择cubemax ide 工程目录debug文件夹下的hex文件。
调试-》不加断点仿真 后续不再啰嗦基础配置了,基本都一样
在这里插入图片描述
在这里插入图片描述
由于程序没有防抖延时,出现按钮偶尔失灵的情况,有兴趣的同志可以加上。
相关资料可以可靠野火和正点原子的官网,虽然不一定是对应的芯片,但操作差不多。到时候有需要记得买他们板子就好。