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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/346319.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 图形化界面方式连接MySQL【C/C++】【图形化界面组件分享】

博客主页:花果山~程序猿-CSDN博客 文章分栏:MySQL之旅_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一.配置开发环境 二…

零拷贝技术

背景 磁盘可以说是计算机系统重最慢的硬件之一,读写速度相对内存10以上,所以针对优化磁盘的技术非常的多,比如:零拷贝、直接I/O、异步I/O等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的…

风能远程管理ARMxy嵌入式系统深度解析

智能技术正以前所未有的速度融入传统能源管理体系,而ARMxy工业计算机作为这一变革中的关键技术载体,正以其独特的性能优势,为能源管理的智能化升级铺设道路。本文将聚焦于智能电表、太阳能电站监控、风力发电站远程管理三大应用场景&#xff…

react修改本地运行项目的端口

一、描述 如果你想让项目在你想要的端口打开的话,就需要进行设置 二、代码 设置一下pages.json文件就可以了,如下: 如果想打开项目不需要点击下面的链接地址,让他运行npm run dev之后自己直接打开到浏览器的话,在后…

万能表单与AI的完美融合,打造个性化AI小程序

在人工智能技术日益成熟的今天,如何将AI智能与用户界面无缝结合,已成为软件开发领域的新挑战。MyCms 以其创新的“万能表单结合AI”功能,为开发者提供了一个全新的解决方案,让个性化AI小程序的开发变得前所未有的简单和高效。 一、…

从零开始搭建Electron项目之运行例程

最好的学习方式就是:给一段能够运行的代码示例。 本文给出了例程资源,以及运行的步骤。 在国内开发electron有一点特别不好,就是如果不爬梯子,下载依赖容易出错。 一、例程资源 到如下路径下载例程到本地。 GitCode - 全球开发者…

QSlider样式示例

参考代码: /********************QSlider横向滑动条样式**********************/ QSlider {background-color: rgba(170, 255, 255, 100); /* 设置滑动条主体*/ }QSlider::groove:horizontal {border: 1px solid #999999;height: 8px; /* 默认…

爬虫工具yt-dlp

yt-dlp是youtube-dlp的一个fork,youtube-dlp曾经也较为活跃,但后来被众多网站屏蔽,于是大家转而在其基础上开发yt-dlp。yt-dlp的github项目地址为:GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloaderA …

01、Linux网络设置

目录 1.1 查看及测试网络 1.1.1 查看网络配置 1、查看网络接口地址 2、查看主机状态 3、查看路由表条目 4、查看网络连接qing 1.1.2 测试网络连接 1.测试网络连接 2.跟踪数据包的路由路径 3.测试DNS域名解析 1.2 设置网络地址参数 1.2.1 使用网络配置命令 1.修改网卡…

Sentinel1.8.6更改配置同步到nacos(项目是Gateway)

本次修改的源码在:https://gitee.com/stonic-open-source/sentinel-parent 一 下载源码 地址:https://github.com/alibaba/Sentinel/releases/tag/1.8.6 二 导入idea,等待maven下载好各种依赖 三 打开sentile-dashboard这个模块&#xf…

Vue3+vite部署nginx的二级目录,使用hash模式

修改router访问路径 import { createRouter, createWebHashHistory } from vue-routerconst router createRouter({history: createWebHashHistory (/mall4pc-bbc/),routes: [XXX,] })配置package.json文件 "build:testTwo": "vite build --mode testing --ba…

计算机网络学习记录 网络层 Day4(下)

计算机网络学习记录 网络层 Day4 (下) 你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到了你 不妨点个赞吧~ 我…

hadoop未授权访问命令执行漏洞复现-vulfocus

1 介绍 Hadoop YARN(Yet Another Resource Negotiator)的ResourceManager是集群资源管理的核心组件,负责分配和管理集群资源以及调度作业。如果ResourceManager出现未授权访问漏洞,可能允许未经认证的用户访问或操作集群资源&…

在 Android App 里使用 C 代码 - NDK

原生开发套件 (NDK) 是一套工具,使能够在 Android 应用中使用 C 和 C 代码,并提供众多平台库,可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。 NDK 可能不适合大多数 Android 编程初学者&#xff…

2022 hnust 湖科大 javaweb课设 数据库课设 报告+源代码+流程图文件+课设指导书+附赠数据库课堂实验指导书

2022 hnust 湖科大 javaweb课设 数据库课设 报告源代码流程图文件课设指导书附赠数据库课堂实验指导书 描述 湖南科技大学大二下学期先后开展java web和数据库课程设计,两个课设项目可以通用,老师一般会允许自拟选题,所以在此统一打包&…

Sentinel不使用控制台基于注解限流,热点参数限流

目录 一、maven依赖 二、控制台 三、基于注解限流 四、热点参数限流 五、使用JMeter验证 一、maven依赖 需要注意,使用的版本需要和你的SpringBoot版本匹配!! Spring-Cloud直接添加如下依赖即可,baba已经帮你指定好版本了。…

tomcat10部署踩坑记录-公网IP和服务器系统IP搞混

1. 服务器基本条件 使用的阿里云服务器,镜像系统是Ubuntu16.04java version “17.0.11” 2024-04-16 LTS装的是tomcat10.1.24阿里云服务器安全组放行了:8080端口 服务器防火墙关闭: 监听情况和下图一样: tomcat正常启动&#xff…

C# 集成 C++ 的方法和实践 - P/Invoke(平台调用)- 1

环境: 1 P/Invoke(平台调用): C#可以通过P/Invoke调用C编写的DLL中的函数。 1.1 适用范围: P/Invoke 是一种在 C# 程序中调用非托管代码(如 C 动态链接库)的方式。这种方法适用于函数调用相对…

国外媒体软文发稿-引时代潮流-助力跨国企业蓬勃发展

大舍传媒:开疆拓土,引领传媒新潮流 随着全球经济的一体化和信息技术的高速发展,跨国企业在国际市场上的竞争越来越激烈。这也给跨国企业带来了巨大的机遇和挑战。在这个时代背景下,大舍传媒凭借其独特的优势和创新的服务模式&…

pdf的压缩该怎么做?快速在线压缩pdf的方法

pdf文件是现在很常用的一种文件格式,有很多的文件内容都可以通过这种格式来展示内容,比如一些通知文件、设计图、个人信息等等,文件的内容越多就会越大,在使用的时候经常会受到一定的限制。那么有什么方法能够快速的将pdf文件变小…