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

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

一、keil的创建

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

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

二、Proteus的简单使用

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

三、点亮LED灯代码

led.c
#include "stm32f10x.h"                  // Device header

void 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_H

void led_init(void);
void led_on(void);
void led_off(void);
void mydelay(int x);
    
#endif

main.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.kler.cn/a/456338.html

相关文章:

  • 【K8S问题系列 | 21 】K8S中如果PV处于Bound状态,如何删除?【已解决】
  • UniApp 页面布局基础
  • 【SpringBoot教程】IDEA快速搭建正确的SpringBoot版本和Java版本的项目
  • C语言性能优化:从基础到高级的全面指南
  • 《探索机器人自主导航与路径规划技术的热点》
  • 2024 年最新 windows 操作系统搭建部署 nginx 服务器应用详细教程(更新中)
  • AI + 爬虫:智能化数据采集的未来
  • 转义特殊token is all you need
  • 已有docker镜像构建过程分析
  • Redis:高性能内存数据库的深度探索
  • 第三百四十六节 JavaFX教程 - JavaFX绑定
  • 解释为什么fetch(JavaScript)无法将读取的数据存入外部变量
  • JVM简介—JVM的执行子系统
  • 企业架构学习笔记-数字化转型
  • 华为管理变革之道:奋斗文化与活力
  • 软路由系统 iStoreOS 中部署 Minecraft 服务器
  • Redis+注解实现限流机制(IP、自定义等)
  • SqlSugar配置连接达梦数据库集群
  • C#WPF基础介绍/第一个WPF程序
  • 【RabbitMQ的死信队列】
  • CCF-GESP 等级考试 2023年12月认证C++二级真题解析
  • firefly rk3588s+qt+海康摄像头部分问题记录
  • Java中的Servlet
  • Java容器都有哪些?
  • 时序论文34|AdaWaveNet:用于时间序列分析的自适应小波网络
  • 【代数学6】基于数域筛法对大整数进行分解