目录
前言:
一. 配置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口速度为2MHz
GPIO_Init(GPIOB, &GPIO_LED); //根据设定参数初始化GPIOB0
GPIO_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 进行电灯的仿真,能让我们更好地理解和掌握其控制原理及编程方法,为实际硬件开发奠定基础。同时,根据不同需求可灵活选择控制方式,以满足各种应用场景的要求。