STM32固件库编程-----点亮led小灯

这篇具有很好参考价值的文章主要介绍了STM32固件库编程-----点亮led小灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用STM32固件库编程驱动led灯

第一步:打开keil5,创建工程文件

stm32点亮一个led灯程序,单片机,stm32,物联网
stm32点亮一个led灯程序,单片机,stm32,物联网

第二步:选择自己想要的路径(温馨提示,最好不要创建在C盘里面)然后点击保存
stm32点亮一个led灯程序,单片机,stm32,物联网

第三步:因为我们是使用STM32单片机所以选择Software Packs

stm32点亮一个led灯程序,单片机,stm32,物联网

因为我们使用的是stm32F1系列的芯片所以要选择如下
stm32点亮一个led灯程序,单片机,stm32,物联网

STM32F1系列有多种芯片,所以我们可以根据自己手上的单片机型号来选择(例如我手上的是F103RCT6芯片就选下面的)
stm32点亮一个led灯程序,单片机,stm32,物联网

这下我们就创建好了我们的工程文件

stm32点亮一个led灯程序,单片机,stm32,物联网
stm32点亮一个led灯程序,单片机,stm32,物联网

创建如下五个相关模块组
stm32点亮一个led灯程序,单片机,stm32,物联网

修改组名时,我们需要点击组一次然后再间隔一秒再次点击,就可以修改组名了
stm32点亮一个led灯程序,单片机,stm32,物联网

Start:添加Libraries——>CMSIS——>startup中的启动文件
stm32点亮一个led灯程序,单片机,stm32,物联网

Cmsis: 添加Libraries——>CMSIS文件夹中的如下文件
stm32点亮一个led灯程序,单片机,stm32,物联网

Fwlib:添加Libraries——>Fwlib——>src文件夹中所有的.c文件
stm32点亮一个led灯程序,单片机,stm32,物联网

最后再User中加入以下.h文件
stm32点亮一个led灯程序,单片机,stm32,物联网

新建main.c文件

stm32点亮一个led灯程序,单片机,stm32,物联网
stm32点亮一个led灯程序,单片机,stm32,物联网

双击如图的魔术棒
stm32点亮一个led灯程序,单片机,stm32,物联网
stm32点亮一个led灯程序,单片机,stm32,物联网

stm32点亮一个led灯程序,单片机,stm32,物联网

3.Define添加会调用到的代码 我们得宏定义加载一下
stm32点亮一个led灯程序,单片机,stm32,物联网

代码如下

STM32F10X_HD, USE_STDPERIPH_DRIVER

添加其他文件的.h路径
stm32点亮一个led灯程序,单片机,stm32,物联网

接下来编译代码
stm32点亮一个led灯程序,单片机,stm32,物联网

没有报错,说明我们的启动文件算是完美收官

接下来开始点灯:

在野火mini板中有两路led,且都是低电平点亮,高电平熄灭,所以我们要使能我们的引脚
stm32点亮一个led灯程序,单片机,stm32,物联网

第一步:新建功能模块组,把创建的led的.c和.h文件加入到里面
stm32点亮一个led灯程序,单片机,stm32,物联网

LED.c文件

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

void LED_Init(void)
{
    //打开控制GPIOC的时钟(APB2)
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    //配置结构体
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;//引脚配置PC2
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50hz
    
    //成员初始化
        GPIO_Init(GPIOC, &GPIO_InitStructure);
}

LED.h文件

#ifndef _LED_H_
#define _LED_H_

#include "stm32f10x.h"                  // Device header

void LED_Init(void);

#endif

方式一:
下面函数都能实现led灯的点亮和熄灭

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//输出高电平
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//输出低电平

main.c文件

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

int main(void)
{
     LED_Init(); //LED初始化
     while(1)
     {
        GPIO_ResetBits(GPIOC, GPIO_Pin_2);     //PC2引脚输出低电平    
     }
    
}

方式二:

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//前两个为指定需要的端口
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//

代码实现

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

int main(void)
{
        LED_Init(); //LED初始化
        while(1)
        {
        GPIO_WriteBit(GPIOC, GPIO_Pin_3,Bit_RESET);     //PC3引脚输出低电平-亮灯
        //GPIO_WriteBit(GPIOC, GPIO_Pin_3,Bit_SET);     //PC3引脚输出高电平-熄灯
        }    
}

编译文件:
无报错

下载到单片机
复位开关点亮成功
stm32点亮一个led灯程序,单片机,stm32,物联网

led小灯闪烁

首先我们需要加入delay延时函数
delay.c

#include "stm32f10x.h"

/**
  * @brief  微秒级延时
  * @param  xus 延时时长,范围:0~233015
  * @retval 无
  */
void Delay_us(uint32_t xus)
{
    SysTick->LOAD = 72 * xus;                //设置定时器重装值
    SysTick->VAL = 0x00;                    //清空当前计数值
    SysTick->CTRL = 0x00000005;                //设置时钟源为HCLK,启动定时器
    while(!(SysTick->CTRL & 0x00010000));    //等待计数到0
    SysTick->CTRL = 0x00000004;                //关闭定时器
}

/**
  * @brief  毫秒级延时
  * @param  xms 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_ms(uint32_t xms)
{
    while(xms--)
    {
        Delay_us(1000);
    }
}
 
/**
  * @brief  秒级延时
  * @param  xs 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_s(uint32_t xs)
{
    while(xs--)
    {
        Delay_ms(1000);
    }
} 

delay.h文件:

#ifndef __DELAY_H
#define __DELAY_H

void Delay_us(uint32_t us);
void Delay_ms(uint32_t ms);
void Delay_s(uint32_t s);

#endif

main.c
#include "stm32f10x.h"                  // Device header
#include "led.h"
#include "delay.h"
int main(void)
{
    LED_Init(); //LED初始化
    while(1)
    {
        GPIO_WriteBit(GPIOC, GPIO_Pin_3,Bit_RESET);     //PC3引脚输出高电平
        Delay_ms(1000);
        GPIO_WriteBit(GPIOC, GPIO_Pin_3,Bit_SET);     //PC3引脚输出低电平
        Delay_ms(1000);
    }
    
}

编译下载复位单片机led进行1s为周期的闪烁-------实验成功!!!文章来源地址https://www.toymoban.com/news/detail-737876.html

到了这里,关于STM32固件库编程-----点亮led小灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F103ZET6 GPIO工作模式介绍+使用寄存器点亮第一个LED灯

    目录  GPIO的工作模式介绍 1.输入模式(模拟、上拉、下拉、浮空) 2.输出模式(推挽/开漏) 3.复用功能(推挽/开漏) 4.模拟输入输出(上下拉无影响) 如何使用寄存器点亮第一个LED灯         在输入模式时,施密特触发器打开,输出被禁止。可通过输入数据寄存器 GPIOx_

    2024年02月06日
    浏览(71)
  • 使用STM32点亮LED

    假设你手中已有 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED,并搭建了电路,分别GPIOA-5、GPIOB-9、GPIOC-14 这3个引脚上控制LED灯(最高时钟2Mhz),轮流闪烁,间隔时长1秒。 1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数; 2)用C语言 寄存器方式编程实

    2024年02月03日
    浏览(48)
  • 2、STM32点亮LED灯

    1、新建工程,新建一个目录存放以后所有的工程stmproject,在这个目录下新建文件夹寄存器点灯,文件名为LED。 接下来选择所用的软件包,之前安装软件时安装的,选择对应型号即可。 如果需要安装别的安装包可以在这个网址下载。点击打开文件 点击next,再点击finish就安装

    2024年02月01日
    浏览(46)
  • STM32 F103C8T6学习笔记2:GPIO的认识—GPIO的基本输入输出—点亮一个LED

    今日继续学习使用  STM32 F103C8T6开发板 点亮一个LED灯,文章提供源码,测试工程,实验效果图,希望我的归纳总结会对大家有帮助~ 目录 GPIO的认识与分类 : 引脚安排整理: 定时器的引脚例举: 串口的引脚例举:  CAN串口通信: SPI通信: IIC通信:  其余引脚: 烧录引脚:

    2024年02月11日
    浏览(52)
  • STM32寄存器点亮LED灯

     这个灯是 PB5引脚 看原理图可以看出 让GPIOB5输出低电平 就能点亮 那么我们得让 打开控制GPIOB5的时钟 让GPIOB5 输出模式 让GPIOB5低电平 时钟就相当于一个阀门开关,或者理解成水龙头,你打开了 才有水出来,也就是你打开才能工作。 看中文参考手册 系统架构 找到你的GPIO

    2024年02月07日
    浏览(54)
  • STM32点亮LED的三种方法

    学习STM32的第一课,都是点亮LED。 芯片:STM32F107RC 系统时钟:72MHz LED引脚:板载引脚PD2,正极接3.3V,负极接PD2,低电平点亮 解释: 1.第1句:RCC-APB2ENR寄存器的位[5]设为1,表示GPIOD时钟使能。类似的还有位[2]表示GPIOA,位[3]表示GPIOB,位[4]表示GPIOC,设为1表示使能,设为0表示失

    2024年02月14日
    浏览(35)
  • 最详细STM32,cubeMX 点亮 led

    这篇文章将详细介绍 如何在 stm32103 板子上点亮一个LED. 实验开发板:STM32F103C8T6。 所需软件:keil5 , cubeMX 。 实验目的:了解 led 点亮原理,cubeMX配置 , GPIO 等相关函数 。 代码编写软件 : MDK keil5 。 图形化配置软件 :STM32cubeMX。 仿真器驱动 : STLINK 。 串口驱动 :CH340 。

    2024年01月16日
    浏览(47)
  • 【STM32】STM32CubeMX教程一--基本使用(新建工程点亮LED灯)

    前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMX的基本使用和如何创建一个新的工程并且点亮LED灯 在新建工程时,我们分为了具体流程1~7,如果您不想看每部分的讲解,直接按照流程操作即可,5分钟即可

    2024年02月09日
    浏览(51)
  • 野火stm32指南者开发板点亮LED

    目录 1.芯片手册中的LED电路图 2.官网手册 3.代码演示 3.1 stm32f10x.h 头文件 3.2 点亮绿灯 3.3 点亮蓝灯 3.4 点亮红灯 3.5 LED灯闪烁,绿灯闪烁 。 3.6 红绿蓝三色LED灯切换闪烁 3.1 stm32f10x.h 头文件 3.2 点亮绿灯 3.3 点亮蓝灯 3.4 点亮红灯 3.5 LED灯闪烁,绿灯闪烁 。 3.6 红绿蓝三色LED灯切

    2024年02月13日
    浏览(43)
  • STM32——震动传感器点亮LED灯

    若产品不震动,模块上的 DO 口输出高电平; 若产品震动,模块上的 DO 口输出低电平,D0-LED绿色指示灯亮。 需求:当震动传感器接收到震动信号时,使用中断的方式点亮led1。 1、打开cubeMX a.在SYS中选择调试方式为串行线调试。 b.在RCC(复位和时钟控制)中选择 HSE(高速时钟)

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包