当前位置: 首页 > news >正文

02 基于STM32的按键控制继电器驱动电机

 本专栏所有源资料都免费获取,没有任何隐形消费。

注意事项:STM32仿真会存在各种各样BUG,且尽量按照同样仿真版本使用。本专栏所有的仿真都采用PROTEUS8.15。

本文已经配置好STM32F103C8T6系列,在PROTUES仿真里,32单片机一般只用一种型号,如需其他型号,可改名。

本次功能实现基于STM32的按键控制继电器驱动电机转动,此为Proteus仿真演示:

基于STM32的按键控制继电器

LED灯与单片机相连:

如图所示,首先点击图左的led.c文件,然后可以看到图右的LED引脚配置。由图可知,可以配置单片机的PD2引脚为继电器引脚,如需更改引脚,可自行修改。

接着,点LED.h文件,可以看出给PD2引脚定义名称为fs,表示为风扇的意思,在仿真图中代表继电器的名称。

然后,点击key.c文件,可以看出按键引脚配置分别由PC5、PC6、PC7,本文采用PC5引脚连接一个按键。

点击key.h文件,可以看出本文给PC5引脚定义为KEY1,即可以调用KEY1为PC5按键。

在本次仿真中,选择PC5引脚连接按键,PD2引脚连接继电器驱动电机。

主函数代码配置:

#include "stm32f10x.h"
#include "usart.h"
#include "delay.h"
#include "sys.h"
#include "led.h"
#include "key.h"u16 key;
u8 motor_flag=0;void Check_serial_KEY(void);
void motor_switch(void);int main(void){	LED_Init();		  	        //初始化与LED连接的硬件接口 包括电机KEY_Init();          	//初始化与按键连接的硬件接口NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);	while(1){Check_serial_KEY();       //按键控制函数	motor_switch();				//电机控制函数}	 }void Check_serial_KEY(void) //按键
{key=KEY_Scan(0);	  //0,不支持连续按;1,支持连续按;if(key){						   switch(key){				 case KEY1_PRES:	motor_flag++;if(motor_flag>1){motor_flag = 0;}break; default:break;}}else delay_ms(10); 
}void motor_switch(void) //电机控制函数
{if(motor_flag == 0){fs = 1;}else{fs = 0;}
}

仿真示例资源、程序源码和软件安装包

基于PROTEUS8.15平台,KEIL5编写
链接:https://pan.baidu.com/s/17FmzUjtkCgGWSuB8Cef6Bw?pwd=795d 
提取码:795d 

http://www.lryc.cn/news/440616.html

相关文章:

  • 网页本地存储
  • SpringBoot2:web开发常用功能实现及原理解析-@ControllerAdvice实现全局异常统一处理
  • DockerLinux安装DockerDocker基础
  • macOS平台TensorFlow环境安装
  • 全网最全 线程邮箱
  • Linux下rpm方式部署mysql(国产化生产环境无联网服务器部署实操)
  • 【Python机器学习】NLP信息提取——正则模式
  • opc服务器与opc服务器如何通讯
  • 指针 (六)
  • Linux下vscode配置C++和python编译调试环境
  • OrionX GPU算力池助力AI OCR场景应用
  • 移动端如何实现智能语音交互
  • HTTPS:构建安全通信的基石
  • OceanBase 企业版OMS 4.2.3的使用
  • STM32中的计时与延时
  • [论文笔记] CSFCN
  • mac电脑命令行获取电量
  • 2024桥梁科技两江论坛——第二届桥梁工程安全与韧性学术会议
  • 性能测试-jmeter的控制器(十六)
  • 直播开播极速流,如何有效接入?
  • stm32 W25Q数据存储
  • 深度学习的笔记
  • 音视频入门基础:AAC专题(8)——FFmpeg源码中计算AAC裸流AVStream的time_base的实现
  • React 组件的基本使用,useState 状态变量的使用
  • 空洞骑士 Hollow Knight 攻略
  • CSP-J 算法基础 广度优先搜索BFS
  • What is new in C# 7,8,9,10
  • Sqlserver常用sql
  • 基于SpringBoot+Vue+MySQL的考研互助交流平台
  • chatgpt个人版ssrf漏洞