你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 GPIO之LED

[复制链接]
STMCU小助手 发布时间:2022-4-3 15:00
01. STM32F4 IO简介

02. 控制原理

20200820105651862.png

硬件只有 LED(DS0 和 DS1)。其电路在 ALIENTEK 探索者 STM32F4 开发板上默认是已经连接好了的。DS0 接 PF9,DS1 接 PF10。

对应的引脚为低电平的时候LED就亮,否则LED就灭。

03. 程序示例一
所有LED灭

  1. int main(void)
  2. {
  3.         GPIO_InitTypeDef gpio_InitTypeDef;
  4.         
  5.         gpio_InitTypeDef.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  6.         gpio_InitTypeDef.GPIO_Mode = GPIO_Mode_OUT;
  7.         gpio_InitTypeDef.GPIO_Speed = GPIO_Speed_100MHz;
  8.         gpio_InitTypeDef.GPIO_OType = GPIO_OType_PP;
  9.         gpio_InitTypeDef.GPIO_PuPd = GPIO_PuPd_UP;
  10.         
  11.         
  12.         delay_init(168);
  13.         

  14.         //1. 初始化GPIO的时钟
  15.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
  16.         
  17.         //2. 初始化GPIO
  18.         GPIO_Init(GPIOF, &gpio_InitTypeDef);
  19.         
  20.         //3. 设置高电平
  21.         GPIO_SetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);

  22.         return 0;
  23. }
复制代码

04. 程序示例二
所有的LED亮

  1. int main(void)
  2. {
  3.         GPIO_InitTypeDef gpio_InitTypeDef;
  4.         
  5.         gpio_InitTypeDef.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  6.         gpio_InitTypeDef.GPIO_Mode = GPIO_Mode_OUT;
  7.         gpio_InitTypeDef.GPIO_Speed = GPIO_Speed_100MHz;
  8.         gpio_InitTypeDef.GPIO_OType = GPIO_OType_PP;
  9.         gpio_InitTypeDef.GPIO_PuPd = GPIO_PuPd_UP;
  10.         
  11.         
  12.         delay_init(168);
  13.         

  14.         //1. 初始化GPIO的时钟
  15.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
  16.         
  17.         //2. 初始化GPIO
  18.         GPIO_Init(GPIOF, &gpio_InitTypeDef);
  19.         
  20.         //3. 设置低电平
  21.         //GPIO_ResetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);

  22.         return 0;
  23. }
复制代码

05. 程序示例三
LED闪烁

  1. #include "stm32f4xx.h"

  2. #include "delay.h"

  3. int main(void)
  4. {
  5.         GPIO_InitTypeDef gpio_InitTypeDef;
  6.         
  7.         gpio_InitTypeDef.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  8.         gpio_InitTypeDef.GPIO_Mode = GPIO_Mode_OUT;
  9.         gpio_InitTypeDef.GPIO_Speed = GPIO_Speed_100MHz;
  10.         gpio_InitTypeDef.GPIO_OType = GPIO_OType_PP;
  11.         gpio_InitTypeDef.GPIO_PuPd = GPIO_PuPd_UP;
  12.         
  13.         
  14.         delay_init(168);
  15.         

  16.         //1. 初始化GPIO的时钟
  17.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
  18.         
  19.         //2. 初始化GPIO
  20.         GPIO_Init(GPIOF, &gpio_InitTypeDef);
  21.         
  22.         //3. LED闪烁
  23.         while(1)
  24.         {
  25.                 //灭
  26.                 GPIO_SetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);
  27.                 delay_ms(1000);
  28.                
  29.                 //亮
  30.                 GPIO_ResetBits(GPIOF, GPIO_Pin_9 | GPIO_Pin_10);
  31.                 delay_ms(1000);
  32.         }
  33.         
  34.         
  35.         return 0;
  36. }


复制代码

收藏 评论0 发布时间:2022-4-3 15:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版