stm32基础(keil创建、Proteus仿真、点亮LED灯,7段数码管)

server/2025/1/2 1:19:46/

一、keil的创建

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
随后点击新建(Ctrl+n),接着保存到所自己项目工程文件。.c .h都是这样操作
在这里插入图片描述

二、Proteus的简单使用

在这里插入图片描述
左上角框框内可以拖动

三、点亮LED灯代码

led.c
#include "stm32f10x.h"                  // Device headervoid led_init(void)
{GPIO_InitTypeDef GPIO_InitStructure;//GPIO_InitTypeDef GPIO_InitStructure2;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIOA时钟使能// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//GPIOB时钟使能GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//初始化的引脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//输出速度//GPIO_InitStructure2.GPIO_Pin=GPIO_Pin_0;//初始化的引脚//GPIO_InitStructure2.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出// GPIO_InitStructure2.GPIO_Speed=GPIO_Speed_50MHz;//输出速度GPIO_Init(GPIOA,&GPIO_InitStructure);//pA5初始化// GPIO_Init(GPIOB,&GPIO_InitStructure2);//pB0初始化
}void led_on(void)
{GPIO_ResetBits(GPIOA,GPIO_Pin_5);//PA输出0// GPIO_ResetBits(GPIOB,GPIO_Pin_0);//PB输出0
}void led_off(void)
{GPIO_SetBits(GPIOA,GPIO_Pin_5);//PA输出1// GPIO_SetBits(GPIOB,GPIO_Pin_0);//PB输出1
}led.h
#ifndef LED_H
#define LED_Hvoid led_init(void);
void led_on(void);
void led_off(void);
void mydelay(int x);#endifmain.c
#include "led.h"
#include "stm32f10x.h"    // Device header
#include "7seg.h"void mydelay(int x)
{int i=0;while(x--)for(i=500;i>=0;i--);
}int main()
{led_init();seg7_init();seg7_desplay(0xC0);while(1){led_on();mydelay(500);led_off();mydelay(500);/*   seg7_desplay(0xC0);mydelay(1000);seg7_desplay(0xF9);mydelay(1000);seg7_desplay(0xA4);mydelay(1000);seg7_desplay(0xB0);mydelay(1000);seg7_desplay(0x99);mydelay(1000);seg7_desplay(0x92);mydelay(1000);seg7_desplay(0x82);mydelay(1000);seg7_desplay(0xF8);mydelay(1000);seg7_desplay(0x80);mydelay(1000);seg7_desplay(0x90);mydelay(1000);*/}//return 0;
}

这里需要注意main.c里面的延时函数需要加到led.h里面;编译器的版本需要改成5。否则在二进制程序进行方针时,LED灯可能不能够有效闪烁。

7seg.c
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/server/154430.html

相关文章

【学生管理系统】权限管理之用户管理

目录 6. 权限管理 6.1 环境搭建 6.1.1 数据库 6.1.2 后端环境 6.2 用户管理 6.2.1 查询所有用户(关联角色) 6.2.2 核心1:给用户授予角色 6. 权限管理 6.1 环境搭建 6.1.1 数据库 权限管理的5张表的关系 添加4张表 # 权限表&…

DinD docker 嵌套部署踩坑

最近要把一个 web 服务容器化部署。开发的时候没写 dockerfile,部署的时候可头疼死我了。 把相关的依赖在 dockerfile 里装好,写好环境变量用了 6h。然后更重量级的来了,DinD 的路径需要填 host 的路径,container 里调用 docker…

STM32-笔记12-实现SysTick模拟多线程流水灯

1、前言 正常STM32实现多线程,需要移植一个操作系统FreeRTOS。但是在这里不移植FreeRTOS怎么实现多线程呢?使用SysTick,那么怎么使用SysTick来模拟多线程呢?前面我们知道SysTick就是一个定时器,它不是在主函数的while循…

路由器RIP动态路由配置

路由器RIP动态路由配置 目录 实验目的 实验背景 技术原理 配置RIP动态路由的一般步骤 学习任务 实验设备 实验拓扑 实验步骤 实验目的 掌握RIP协议的配置方法:掌握查看通过动态路由协议RIP学习产生的路由;熟悉广域网线缆的链接方式;…

FFmpeg 的常用API

FFmpeg 的常用API 附录:FFmpeg库介绍 库介绍libavcodec音视频编解码核心库编码 (avcodec_send_frame, avcodec_receive_packet)。解码 (avcodec_send_packet, avcodec_receive_frame)。libavformat提供了音视频流的解析和封装功能,多种多媒体封装格式&…

Flink的Watermark水位线详解

一、Flink的时间语义 Flink有如下三种时间语义: Flink的三种时间语义-CSDN博客 在实际应用中,一般会采用事件时间语义。而正如前面所说的,事件时间语义需要等窗口的数据全部到齐了,才能进行窗口计算。那么,什么时候数…

go语言的成神之路-筑基篇-gin常用功能

第一节-gin参数绑定 目录 第一节-?gin参数绑定 ShouldBind简要概述 功能: 使用场景: 可能的错误: 实例代码 效果展示 第二节-gin文件上传 选择要上传的文件 选择要上传的文件。 效果展示? 代码部分 第三节-gin请求重定向 第…

天天 AI-241226:今日热点-OpenAI正研发实体机器人,终结者时代还是来了

2AGI.NET | 探索 AI 无限潜力,2AGI 为您带来最前沿资讯。 2AGI.NET:天天AI-20241225 AI技术正在多个领域实现突破,从实体机器人的研发到企业级生成式AI的应用趋势,再到AI安全平台的融资消息,每一项技术的发展都在推动着…