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

STM32-电灯,仿真

目录

前言:

一. 配置vscode

二. 新创建软件工程

三. 仿真

 1.新建工程想到,选择名称和路径

2.从选中的模板创建原理图

3.不创建PCB布版设计

4.选择没有固件项目

5.完成

四.源码

五. 运行效果

六. 总结



前言:

这篇主要是配置vscode和创建仿真,和点灯的完整代码,欢迎大家的评论,点赞,和关注

一. 配置vscode

http://t.csdnimg.cn/BvCLx

扩展工具:

安装 C/C++ Extension Pack

安装 Embedded IDE

安装 Keil MDK

配置路径

二. 新创建软件工程

在Embedded IDE页面,点击新建项目.然后点击空项目.

下拉找到对应的stm32F1 Quickstart

输入项目名字, 之后会弹出来选择位置页面,选择项目所在文件夹即可

三. 仿真

一路新建就行

 1.新建工程想到,选择名称和路径

2.从选中的模板创建原理图

3.不创建PCB布版设计

4.选择没有固件项目

5.完成

按照上面的步骤,选择相应的就可以了.

然后选择原件STM32F103R6

一共包含了三个元件

STM32F103R6, -- 单片机

RES,                    --电阻

LED-BLUE         --Led灯

电阻连接到led上

led连接到PB0;

右键stm32,选择编辑属性

在ProgramFil里面选择hex文件,CrystalFrequency输入8m.这样准备工作就完成了

四.源码

#include "led.h"//LED 初始化程序
void led_init(void)
{ GPIO_InitTypeDef  GPIO_LED; //定义GPIO结构体变量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB端口的时钟GPIO_LED.GPIO_Pin = GPIO_Pin_0;		  //LED端口配置GPIO_LED.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出GPIO_LED.GPIO_Speed = GPIO_Speed_2MHz;  //IO口速度为2MHzGPIO_Init(GPIOB, &GPIO_LED);			  //根据设定参数初始化GPIOB0GPIO_SetBits(GPIOB,GPIO_Pin_0);	//GPIOB0输出高电平,初始化LED灭
}
#ifndef __LED_H
#define __LED_H#include "main.h"void led_init(void);#endif
#ifndef __MAIN_H
#define __MAIN_H//标准头文件
#include "stm32f10x.h"//用户自定义头文件
#include "led.h"#endif
#include "main.h"int main(void)
{led_init(); //LED初始化while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_0);	 //点亮LED}	
}

五. 运行效果

1.点击调试

2.点击运行仿真

3.就可以看到LED亮起

六. 总结

以下是关于 STM32 控制电灯仿真的总结:

STM32 特性

  • 强大的处理能力和丰富的外设资源。

电灯控制要点

  • 通过控制引脚的输出状态来点亮或熄灭电灯。
  • 可能涉及到对亮度的调节(如采用 PWM 控制)。

仿真过程

  • 在仿真软件中搭建 STM32 模型和电路环境。
  • 配置相关引脚为输出模式。
  • 编写代码实现对电灯状态的控制逻辑。

实现方式

  • 简单的开关控制:直接设置引脚高低电平。
  • 亮度调节控制:利用 PWM 实现不同亮度等级。

代码逻辑

  • 初始化部分包括引脚配置等。
  • 控制函数根据需求改变电灯状态。

仿真优势

  • 可以提前验证控制逻辑的正确性。
  • 方便调试和优化代码。

应用场景

  • 智能家居系统中的灯光控制。
  • 工业自动化中的照明控制等。

总之,通过 STM32 进行电灯的仿真,能让我们更好地理解和掌握其控制原理及编程方法,为实际硬件开发奠定基础。同时,根据不同需求可灵活选择控制方式,以满足各种应用场景的要求。

相关文章:

  • 每日两题7
  • 【因果推断python】26_双重稳健估计1
  • 速盾:图片cdn加速 免费
  • AWS EMR Serverless
  • 23种设计模式——创建型模式
  • JavaEE——声明式事务管理案例:实现用户登录
  • 打开C# 大门:Hallo, World!
  • 【Pycharm】功能介绍
  • 【全网最简单的解决办法】vscode中点击运行出现仅当从 VS 开发人员命令提示符处运行 VS Code 时,cl.exe 生成和调试才可用
  • TypeScript基础教程学习
  • 算法训练营day52
  • Chapter 6 Frequency Response of Amplifiers
  • 代码随想录算法训练营第五十四 | ● 392.判断子序列 ● 115.不同的子序列
  • SpringBoot引入WebSocket依赖报ServerContainer no avaliable
  • centos官方yum源不可用 解决方案(随手记)
  • docker-consul
  • docker容器内的网络抓包
  • ES2017异步函数现已正式可用
  • ES6--对象的扩展
  • Objective-C 中关联引用的概念
  • uni-app项目数字滚动
  • Vue--数据传输
  • WebSocket使用
  • 测试开发系类之接口自动化测试
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 聊聊flink的BlobWriter
  • 深入浅出webpack学习(1)--核心概念
  • 算法之不定期更新(一)(2018-04-12)
  • 温故知新之javascript面向对象
  • ​力扣解法汇总946-验证栈序列
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (26)4.7 字符函数和字符串函数
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (学习日记)2024.01.09
  • (一)Java算法:二分查找
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET Core 中插件式开发实现
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .net和jar包windows服务部署
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • 。。。。。
  • [ Linux ] Linux信号概述 信号的产生
  • []Telit UC864E 拨号上网
  • []常用AT命令解释()
  • [Android] Android ActivityManager
  • [android] 请求码和结果码的作用
  • [bzoj1038][ZJOI2008]瞭望塔
  • [Cloud Networking] Layer Protocol (continue)
  • [Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例
  • [HCTF 2018]WarmUp (代码审计)