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

stm32点亮led灯

[复制链接]
攻城狮Melo 发布时间:2022-11-8 22:37
学习32第一个程序就是点亮led灯。本人用的是野火的指南者开发板。先上电路图。

7814e00c31aa44e2b5d9d6f7bafbd4d7.png

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

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

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

  10. }
复制代码

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

头文件代码如下:

  1. #ifndef _DSP_LED_H
  2. #define _DSP_LED_H

  3. #include "stm32f10x.h"

  4. //定义led灯端口
  5. #define LED_G_PIN        GPIO_Pin_0
  6. #define LED_G_PORT        GPIOB
  7. #define LED_G_CLK        RCC_APB2Periph_GPIOB

  8. //初始化灯
  9. void LED_G_Init(void);

  10. #endif /*_DSP_LED_H*/
复制代码

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

  1. int main(void)
  2. {

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

  6. }
复制代码

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

收藏 评论0 发布时间:2022-11-8 22:37

举报

0个回答

所属标签

相似分享

官网相关资源

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