当前位置: 首页 > news >正文

STM32之点亮LED灯

使用固件库实现LED点灯

LED灯:

LED灯,是一种能够将电能转化为可见光的半导体器件

控制LED灯:

LED灯的正极接到了3.3V,LED灯的负极接到了PA1,也就是GPIOA1引脚

只需要控制PA1为相对应的低电平,即可点亮对饮的LED灯,输出高电平则熄灭对应的LED灯。

原理图:

具体代码如下:

主函数:

点亮灯的函数:

配置各个函数的具体做法:

因为我们是使用GPIO进行输出所以先打开stm32f103x_gpio.h的库文件,里面有许多的定义的函数所需的结构体,再打开一些时钟所需的库函数stm32f10x_rcc.h,stm32f10x_rcc.c,stm32f10x.h

我们的思想是在main函数里面调用一个函数使这个LED灯变亮

主要分为三步走:

初始化GPIO外设时钟(被调用的函数)

初始化LED引脚

输出电平

led_initstruct是我们自己定义的结构体名称,通过这个就可以配置相关的引脚,输出速度,输出模式。

输出速度的配置

输出模式的配置,这里我使用的是推挽输出,即Out_PP

配置初始化GPIO结构体,在这里第一个参数是GPIOA,第二个参数是我们定义的  GPIO结构体名称led_initstruct 

外设时钟(使能ENABLE)

配置电平

第一个参数为GPIOA

第二个参数为GPIO_Pin_1

我们所用的GPIOA是通过桥接线APB2连接的

成功点亮(上面一个是电源指示灯,下面一个才是需要点亮的LED灯)

实现LED闪烁

只需在main函数里面进行操作即可

这里边加入了一个延迟函数delay(),里面的i是一个通过CPU主频灯大致计算的数值,无需记住。

如下图,上面一行是输出高电平,下面一行是输出低电平,我们要使LED灯熄灭,可以在PA1输出高电平,使两端无法流通,就可以实现熄灭。


http://www.mrgr.cn/news/3438.html

相关文章:

  • 静态代理和动态代理
  • JAVA_7
  • MySQL读写分离
  • MyBatis源码系列1(使用JDBC查询数据)
  • 代码随想录跟练第六天——LeetCode
  • 网际报文协议ICMP及ICMP重定向实例详解7
  • 利用贝叶斯和决策树 来进行医疗诊断的
  • ORA-01110
  • 【ARM 芯片 安全与攻击 5.6 -- 侧信道与隐蔽信道的区别】
  • uniapp-部分文件中文乱码
  • 程序员如何学习开源项目
  • PCB线宽和线间距设计PCB抄板
  • Maven 从本地文件系统加载依赖项
  • [CLIP-VIT-L + Qwen] 多模态大模型学习笔记 - 5
  • 软件测试学习笔记丨Allure2报告添加附件报告定制
  • 【Redis】哈希类型详解及缓存方式对比:从命令操作到实际应用场景
  • C:数组传参的本质
  • 【ARM系统】基础知识总结
  • 2024计算机软考报名流程(电脑报名)
  • Fx - day3 - 沙盒/更改集/互联更改集/配置包