stm32使用固件库点亮LED灯

1. 项目:使用stm32f10x点亮LED灯,并实现流水灯效果。

2. 代码:

  main.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "stm32f10x.h"
#include "bsp_led.h"
 
/*延时函数*/
void Delay(uint32_t count)
{
    for(;count!= 0; count--);
}
 
int main(void)
{      
    LED_GPIO_Config();
    while(1)
    {
//      //方法1
//      GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);   //关灯
//      Delay(0xfffff);
//      GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN); /*开灯*/
//      Delay(0xfffff);
         
        //方法2
        LED_G(OFF); //关灯
        Delay(0xffffff);
        LED_G(ON);      /*开灯*/
        Delay(0xffffff);
    }
 
}

  bsp_led.c

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "bsp_led.h"
 
void LED_GPIO_Config(void)
{
    GPIO_InitTypeDef    GPIO_InitStruct;
     
    RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, 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_G_GPIO_PORT, &GPIO_InitStruct);
}

  

  bsp_led.h

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef __bsp_led_h
#define __bsp_led_h
 
#include "stm32f10x.h"
//方法1
#define LED_G_GPIO_PIN          GPIO_Pin_0
#define LED_G_GPIO_PORT         GPIOB
#define LED_G_GPIO_CLK          RCC_APB2Periph_GPIOB
 
//方法2
#define ON  1
#define OFF 0
#define LED_G(a)    if(a)   GPIO_SetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);   \
                                    else GPIO_ResetBits(LED_G_GPIO_PORT,LED_G_GPIO_PIN);
 
 
void LED_GPIO_Config(void);
 
#endif /*__bsp_led_h*/

  

 

 

 

posted @   JRS077  阅读(545)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示