精华内容
下载资源
问答
  • stm32点亮一个led程序
    2022-03-26 13:55:25

                                                        STM32的LED控制图

     

                                          led灯电路如上,PB0=8,小灯点亮

    点亮小灯分为3个步骤

    1.使能GPIOB的时钟

    2.将PB8引脚配置为输出引脚

    3.电平置零,点亮led小灯

    代码如下(详细的注释在里面)

    前面的代码不用特意去背,初学者会认即可,随着以后的学习就会有更深刻的理解

    #include "stm32f10x.h"
    
    int main(void)
    {
    		GPIO_InitTypeDef GPIO_InitStructure;
    		RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); 		//使能GPIOB时钟
    		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置
    		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出
            GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz
    		GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8
            GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
            
            while(1)
            {
                 GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
            }
    }

    更多相关内容
  • stm32点亮一个led程序

    千次阅读 2021-07-02 10:26:32
    近来新接触stm32,途中学习的疑惑,32和51有什么区别呢,假设我把它的端口控制都学会了,那和51就没有什么区别吧,接触了几天,确实有很多相似之处,只是51的端口配置比较简单,32的端口因为功能强大,所以配置祥细...

    近来新接触stm32,途中学习的疑惑,32和51有什么区别呢,假设我把它的端口控制都学会了,那和51就没有什么区别吧,接触了几天,确实有很多相似之处,只是51的端口配置比较简单,32的端口因为功能强大,所以配置祥细一些,直接上图了。

    在这里插入图片描述

    它的使用流程是这样的

    首先得端口配置

    下面第一个标记是GPIOA,就是使用GPIOA这个口的功能,如果是使用B口,就是GPIOB了,学会理解,学会修改

    第二个标记这里打开了PIN1~PIN3和PIN7,用哪个打开哪个,简单说就是复制粘贴的事,有样学样复制就行。

    第三个标记是初始化GPIOA,就是这个样子,GPIOA配置成功了
    在这里插入图片描述

    第二部分:定义端口
    32因为不用sbit了,我就直接用define定义端口使用
    在这里插入图片描述

    第三部分:使用端口
    使用的时候,就可以在程序中直接运行名字点亮灯了
    在这里插入图片描述

    配套个程序,让大家参考一下了

    //头文件
    #include “stm32f10x.h”
    #include “GPIOLIKE51.h”
    #define uchar unsigned char
    #define uint unsigned int
    #define PA0 PAout(0) //定义端口
    #define PA1 PAout(1)
    #define PA2 PAout(2)
    #define PA3 PAout(3)
    #define PA7 PAout(7)
    //#define PA GPIOA
    #define PAOUT(x) GPIO_Write(GPIOA, x) //定义PA口

    //函数声明
    void GPIO_Configuration(void);

    //=============================================================================
    //文件名称:Delay
    //功能概要:延时
    //参数说明:nCount:延时长短
    //函数返回:无
    //=============================================================================

    void Delay(uint32_t nCount) //延时子程序
    {
    for(; nCount != 0; nCount–);
    }

    void delay_ms(uint k) //延时子程序
    {
    uint i,j;
    for(i=0;i<k;i++)
    {
    for(j=0;j<3000;j++)
    {
    ;
    }
    }
    }

    //=============================================================================
    //文件名称:main
    //功能概要:主函数
    //参数说明:无
    //函数返回:int
    //=============================================================================
    int main(void)
    {
    GPIO_Configuration();

    PAOUT(0xff);
    
    while (1)
    	{
    		
    	PA0=0;      //点亮灯
    	while(1);   //停止标记 
    				
    }
    

    }

    //=============================================================================
    //文件名称:GPIO_Configuration
    //功能概要:GPIO初始化
    //参数说明:无
    //函数返回:无
    //=============================================================================
    void GPIO_Configuration(void) //端口配置
    {
    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE);
    //=============================================================================
    //LED -> PC13
    //=============================================================================
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //AIN,IN_FLOATING,IPD,IPU,Out_OD,Out_PP,AF_OD,AF_PP
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    }

    STM32专用keil软件
    .
    软件,注册机,安装教程都有的。
    .
    在这里插入图片描述
    .
    编程软件界面
    .
    在这里插入图片描述
    .

    需要软件请联系岁月哥Q:936559219

    获取,软件整理不容易,9元发送,谢谢理解

    展开全文
  • STM32F103点亮一个LED程序
  • STM32点亮LED灯 代码

    2017-12-03 13:59:46
    详细介绍了有关STM32如何编写LED的过程,并且有附带代码,推荐刚上手的新人读取并下载。
  • STM32f407中,运用库函数驱动LED灯亮
  • stm32点亮led灯。

    千次阅读 2022-03-24 13:36:22
    学习32一个程序就是点亮led灯。本人用的是野火的指南者开发板。先上电路图。 如图所示,为led模块电路图,由图可知,此模块为共阳极。只需将引脚变成低电平即可使led灯亮。此次代码点亮B0。代码如下。 stm32要...

    新手学习stm32

    学习32第一个程序就是点亮led灯。本人用的是野火的指南者开发板。先上电路图。

     

    如图所示,为led模块电路图,由图可知,此模块为共阳极。只需将引脚变成低电平即可使led灯亮。此次代码点亮B0。代码如下。

    stm32要进行引脚初始化,led.c文件中定义如下:

    #include "led.h"
    void LED_G_Init(void)//初始化灯
    {
    	GPIO_InitTypeDef GPIO_InitStruct;//结构图定义
    	RCC_APB2PeriphClockCmd(LED_G_CLK,ENABLE);//总线2时钟开关
    	GPIO_InitStruct.GPIO_Pin = LED_G_PIN;//引脚
      GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//模式为推挽输出
    	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置频率为50HZ
    	GPIO_Init(LED_G_PORT,  &GPIO_InitStruct);//GPIO初始化
    
    }
    

    每使用一个引脚都需要将GPIO进行初始化。

    头文件代码如下:

    #ifndef _DSP_LED_H
    #define _DSP_LED_H
    
    #include "stm32f10x.h"
    
    //定义led灯端口
    #define LED_G_PIN        GPIO_Pin_0
    #define LED_G_PORT        GPIOB
    #define LED_G_CLK        RCC_APB2Periph_GPIOB
    
    //初始化灯
    void LED_G_Init(void);
    
    #endif /*_DSP_LED_H*/
    

    上面就已经将led灯初始化完成了,现在编写主函数:

    int main(void)
    {
    
    	LED_G_Init();//初始化调用
    	GPIO_SetBits(GPIOB, GPIO_Pin_0);//因为初始化使GPIO会初始化为低电平,所以如果不是点评增高,led灯会直接变亮。所以调用此函数,使其电平变高。
    	GPIO_ResetBits(GPIOB, GPIO_Pin_0);//电平为低,点亮灯,这两个函数都是在32库里面的,可直接调用。
    
    }
    

    以上就可点亮一个灯了。虽然不是很难,但刚开始学习使用时因为接触到寄存器的配置,比51还是难很多的,新手还是会迷。

    代码链接:https://pan.baidu.com/s/1CJkXt8mRiO4aNu-pOz5sTg 
    提取码:liu1 
    有什么疑惑可以一起交流。

    展开全文
  • stm32点亮LED

    2022-05-20 11:37:30
    stm32点亮LED灯 野火烧不尽,春风吹又生,我购买的是野火的指南针开发板,接下来我就以发表动态来跟大家一起学习,也可以让我学习这块开发板更有动力,增加印象。 每一块开发板,第一个例程无一例外就是通过他的GPIO...

    stm32点亮LED灯
    野火烧不尽,春风吹又生,我购买的是野火的指南针开发板,接下来我就以发表动态来跟大家一起学习,也可以让我学习这块开发板更有动力,增加印象。
    每一块开发板,第一个例程无一例外就是通过他的GPIO口点亮一颗led灯

    图中3个led灯的阳极引出连接到3.3V的电源,阴极各通过一个100欧的限流电阻引入stm32的3个GPII引脚中,我们要控制led亮灭,只需控制三个引脚的高低电平。

    我们通过固件库编程来实现led灯的亮灭,stm32的功能非常强大,led是一个RGB灯,里面有红蓝绿三种颜色,使用pwm可以实现256种不同颜色
    具体怎么操作,为什么要使能相关总线还是要了解这个框图

    1.让三颗led灯循环亮灭   
    编程步骤

    (1).使能GPIO端口时钟

    (2).初始化GPIO目标引脚为推挽输出模式,配置相应的速度

    (3).控制GPIO引脚引脚输出高低电平
    一般都通过#define把硬件相关的宏定义封装起来,若改变了GPIO,只需修改这些宏即可。

    为了使工程更加有条理,我们把 LED 灯控制相关的代码独立分开存储,方便以后移植。在“工 程模板”之上新建“bsp_led.c”及“bsp_led.h”文件

    #ifndef __BSP_LED_H 
    #define __BSP_LED_H
    
    #include "stm32f10x.h"
    #define LED_GPIO_PORT  GPIOB
    //这里定义的是LED所在的GPIO
    #define LED_B_GPIO_PIN  GPIO_Pin_1  
    #define LED_G_GPIO_PIN  GPIO_Pin_0
    #define LED_R_GPIO_PIN  GPIO_Pin_5
    //定义GPIO引脚
    //声明
    void LED1_GPIO_Config(void);
    void LED2_GPIO_Config(void);
    void LED3_GPIO_Config(void);
    #endif
    
    
    #include "bsp_led.h"
    
    void LED1_GPIO_Config(void)
    {
    	GPIO_InitTypeDef  GPIO_InitStruct;	
    	//定义一个GPIO_InitTypeDef结构体 
    	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); 
    	//使能GPIO相关的外部时钟
    	GPIO_InitStruct.GPIO_Pin = LED_B_GPIO_PIN;
    	//选择要控制的GPIO引脚
    	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    	//推挽输出
    	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    	//设置引脚速率为50MHZ
    	GPIO_Init(LED_GPIO_PORT,&GPIO_InitStruct);
    	//调用库函数,初始化GPIO
    }	
    void LED2_GPIO_Config(void)
    {
    	GPIO_InitTypeDef  GPIO_InitStruct;	
    	
    	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    	GPIO_InitStruct.GPIO_Pin =LED_G_GPIO_PIN;
    	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    	GPIO_Init(LED_GPIO_PORT,&GPIO_InitStruct);
    }	
    void LED3_GPIO_Config(void)
    {
    	GPIO_InitTypeDef  GPIO_InitStruct;	
    	
    	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    	GPIO_InitStruct.GPIO_Pin = LED_R_GPIO_PIN;
    	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    	GPIO_Init(LED_GPIO_PORT,&GPIO_InitStruct);
    }	
    

    具体这些函数怎么实现的,都是固件库编程好相应的库,我们直接调出来用
    想了解推挽输出可以在网上找资料,一堆。

    以下是野火开发实战开源资料的函数执行过程

    (1) 使用 GPIO_InitTypeDef 定义 GPIO 初始化结构体变量,以便下面用于存储 GPIO 配置。 (2) 调用库函数 RCC_APB2PeriphClockCmd 来使能 LED 灯的 GPIO 端口时钟,在前面的章节中 我们是直接向 RCC 寄存器赋值来使能时钟的,不如这样直观。该函数有两个输入参数,第 一个参数用于指示要配置的时钟,如本例中的“RCC_APB2Periph_GPIOB”,应用时我们使 用“|”操作同时配置 3 个 LED 灯的时钟;函数的第二个参数用于设置状态,可输入“Disable” 关闭或“Enable”使能时钟。 (3) 向 GPIO 初始化结构体赋值,把引脚初始化成推挽输出模式,其中的 GPIO_Pin 使用宏 “LEDx_GPIO_PIN”来赋值,使函数的实现方便移植。 (4) 使用以上初始化结构体的配置,调用 GPIO_Init 函数向寄存器写入参数,完成 GPIO 的初始 化,这里的 GPIO 端口使用“LEDx_GPIO_PORT”宏来赋值,也是为了程序移植方便。 (5) 使用同样的初始化结构体,只修改控制的引脚和端口,初始化其它 LED 灯使用的 GPIO 引 论坛:https://www.firebbs.cn/ 174 天猫:https://yehuosm.tmall.com STM32 库开发实战指南 基于野火指南者开发板 脚。 (6) 使用宏控制 RGB 灯默认关闭。
     

    编辑好LED灯的控制函数后,就可以通过main函数来执行了

    #include "stm32f10x.h"
    #include "bsp_led.h"
    void delay(uint32_t count) //定义延时函数
    {
    	for(;count!=0;count--);
    }
    int main(void)
    {
    	LED1_GPIO_Config();  //端口初始化
    	LED2_GPIO_Config();
    	LED3_GPIO_Config();
    	while(1)
    	{
    		GPIO_ResetBits(LED_GPIO_PORT,LED_B_GPIO_PIN); //打开led灯
    		delay(0xffff);//延时
    		GPIO_SetBits(LED_GPIO_PORT,LED_B_GPIO_PIN);//关闭led灯
    		delay(0xffff);
        GPIO_ResetBits(LED_GPIO_PORT,LED_G_GPIO_PIN);
    		delay(0xffff);
    		GPIO_SetBits(LED_GPIO_PORT,LED_G_GPIO_PIN);
    		delay(0xffff);
    		GPIO_ResetBits(LED_GPIO_PORT,LED_R_GPIO_PIN);
    		delay(0xffff);
    		GPIO_SetBits(LED_GPIO_PORT,LED_R_GPIO_PIN);
    		delay(0xffff);
    	
    	}
    }
    

    程序执行成功

    亮了!

     

    展开全文
  • STM32点亮LED程序

    2020-08-11 07:36:34
    这是一个STM32点亮LED程序,含有配置图及相关原理图,简单易懂。
  • STM32--点亮LED

    千次阅读 2022-03-05 17:36:26
    零基础开始学32,从点灯开始,一步一步来!!
  • STM32入坑教程(一)点亮一个LED

    千次阅读 2020-05-28 15:26:10
    STM32入门教程(一)点亮一个LED灯随表聊聊配置流程一.初始化引脚二.主函数中实现逻辑备注 随表聊聊 作为所有入坑单片机的同学来说,第一个单片机程序必然是点亮一个LED灯,这就类似于学编程第一个程序必然是‘Hello...
  • stm32——点亮LED

    千次阅读 2021-07-20 19:52:18
    1.点亮LED灯的准备工作 需要了解GPIO的基本工作原理,话不多说,先上图 关于详细的功能介绍,请参考普中科技F407详细资料,今天主要到的是GPIO的推...1.查看开发板原理图,看看自己的板子上LED是与哪一个管脚连接.
  • STM32入门之点亮LED灯(以STM32F103为例)

    千次阅读 多人点赞 2021-11-16 14:06:49
    入门第点亮LED灯(超详细)
  • 点亮LED程序,基于STM32F407 GPIO 实现,包含流水灯的点亮和花式电灯。自测电子STM32F407开发板可用。
  • 程序内有详细的讲解文档,很好的学习资料,欢迎大家下载学习
  • stm32f102 点亮一个LED灯例程,
  • 本学习采用“STM32CubeMX + MDK-ARM”的开发工具组,内部利用ST主推的HAL(Hardware Abstraction Layer,硬件抽象层)库,对新大陆的M3主控模块(内置STM32F103VET6芯片)实现开发学习。总的开发流程如下: 1、...
  • 软件仿真在一定程度上可以在设计的初期发现程序的错误,减少我们下载到开发板的麻烦。但是纯软件的仿真的正确,也不能保证程序...有时候仿真正确,实物却没这效果。有时软件仿真结果是错误,你分析你的程序却没错误。
  • stm32f103点亮led

    2021-01-19 11:04:59
    stm32f103点亮led
  • STM32学习(一)——点亮一个LED

    万次阅读 2018-07-26 08:42:13
    STM32CubeMX创建工程,点亮一个LED灯 1.在原理图中找到要点亮的灯的位置,控制LED2的管脚为PC13 2.新建工程 3.选择新芯片类型为STM32F101C8TX,选择工程后进入工程配置界面,其中浅黄色引脚均为电源引脚,...
  • stm32点亮个led

    千次阅读 2021-10-23 14:34:27
    stm32点亮ledstm32点灯原理建立工程文件三级目录 stm32点灯原理 通过设置相应端口的时钟,在配置相应端口寄存器,最后配置端口模式,即可点亮led灯 建立工程文件 首先我们要明白,利用stm32点灯一等要有相关的启动...
  • stm32入门系列1点亮一个led详细步骤及代码。
  • 大家好下面我给大家介绍的是基于微信小程序开发的手机端平台通过蓝牙设备或者WIfi设备来实现无线控制和数据传输。如图这是我们微信小程序做的界面。...1、准备STM32cubumx软件(创建工程需要) 这里提供官
  • STM32点亮一个LED

    2019-08-17 23:24:54
    STM32点亮一个LED 一、环境 OS:Win7 64位 Keil:keil5 MCU: STM32F103C8T6 下载方式:Elink 二、准备工作 (一)GPIO外设的功能分析 图:I/O端口位的基本结构 STM32F103C8T6共有2组GPIO端口:PA、PB,每组16个端口。...
  • 打开STM32CubeMx软件,实现第步,设置配置参数! 第二步,设置生成属性,点击右上方GENERATE CODE 第三步,简单修改代码,在while(1) 添加这四行代码,如下所示 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, ...
  • 基于stm32简单程序LED闪烁

    千次阅读 2020-10-08 15:33:35
    基于stm32简单程序LED闪烁1、新建工程项目及文件1.1 新建工程1.2 新建文件2、新建protues电路2.1 新建工程2.2 选择元器件2.3 连接元器件3、导入文件并仿真 (本文章暂时写到文件编译完成后面仿真相关步骤后续补充...
  • 已附上一个已经配置好的工程和EWARM源代码,已调试成功
  • STM32 初级入门,点亮LED,并且控制亮灭时间
  • stm32学习笔记---点亮一个LED

    千次阅读 2018-07-22 18:05:38
     根据原理图与系统结构图,点亮LED灯需要使能APB2,初始化PB6,PB7,PB8   #include "led_driver.h" //1.硬件初始化 void led_init(void) { GPIO_InitTypeDef GPIO_InitStruct; //使能时钟总线 ...
  • STM32F103VCT6循环点亮个LED灯,我这里只点亮了两个LED循环亮着,方法一样的
  • stm32初学者入门——循环交替点亮2个LED,适合初学者了解掌握stm32单片机的基本操作,内有注释,很详细,亲测有用!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,466
精华内容 2,186
关键字:

stm32点亮一个led程序