使用STM32f103点亮led灯——库函数版本
本文章是结合我这一年的学习与应用,总结出来的经验与知识(主要为了应用),欢迎读者们学习和指导。
前言
资料 :
链接:https://pan.baidu.com/s/1pr57NSXFmax06kqPHLQGBQ
提取码:air1
为了保证单片机的使用寿命,ARM公司生产的STM32单片机引脚默认状态是不开启的,所以使用任何功能都要先使能其引脚,才能使用其功能。
1. STM32f103原理图(借鉴野火指南者)
如图所示,此单片机有3个不同颜色的LED灯,分别为LEDG(PB0),LEDB(PB1),LEDR(PB5)。
R-RED,B-BLUE,G-GREED对应三种不同的颜色。
如下图所示:
PB0通过R24与LEDG(发光二极管)相连,再连接3.3v电压。
此电路为串联,要想点亮LEDG,就需要其两端有电势差,因此,需要使能PB引脚并且给其低于3.3v的电压,或者高于3.3v的电压,又因为发光二极管单向导通(头大的那端到头小的那端),所以PB0就得给其低电平,简单化的就直接调用stm32f1官方库函数。
如下代码所示:
//此函数第一个参数对应不同的引脚(GPIOA-GPIOB-GPIOx)
// 第二个参数为引脚号(GPIO_Pin0-GPIO_Pin15)
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(GPIOx));//选中IS_GPIO_ALL_PERIPH,再右键Go To Definition of ...............(省略号),可以查看所有能填写的参数assert_param(IS_GPIO_PIN(GPIO_Pin));//选中IS_GPIO_PIN,再右键Go To Definition of ...............(省略号),可以查看所有能填写的参数GPIOx->BRR = GPIO_Pin;//为寄存器操作,新手可不做深究
}
要使用此函数就先得先将引脚的功能对应设置
void LED_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;//GPIO结构体初始化(将结构体指针重新换个名字,避免冲突)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //开启LED对应引脚的时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //LED对应引脚开启GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //将模式设置为推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚传输速度为50mhzGPIO_Init(GPIOB, &GPIO_InitStructure); //GPIO初始化,第一个参数为对应引脚,第二个参数为结构体指针,选中GPIO_Init再右键Go To Definition of .......查询此结构的参数,过程与上一次相同
}
如果要点亮LED灯,可将此代码复制到main.c文件中,如下图所示:
#include "stm32f10x.h"int main(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOE, &GPIO_InitStructure); while(1)//死循环(while之内的函数一直循环执行){GPIO_ResetBits(GPIOB , GPIO_Pin_0); //PB0设置为低电平,LED亮 }}
萌新求关注,文章会持续更新。
使用STM32f103点亮led灯——库函数版本相关推荐
- STM32F103点亮LED灯
文章目录 一.点灯 1.打开时钟 2. 初始化 3. 设置低电平 三.创建项目 1. 新建项目 2. 编写代码 四.连接电路 五.总结 使用工具: stm32f103C8T6 USB转串口 面包板 导 ...
- 普中仿真器无法使用解决方法和用库函数点亮LED灯
文章目录 解决普中stm32F103玄武无法仿真问题 使用库函数点亮LED灯 解决普中stm32F103玄武无法仿真问题 问题描述 该开发板可以使用串口下载程序,但是无法仿真.每一次仿真,总是会出现 ...
- STM32F103实验一:点亮LED灯
STM32F103点亮LED 这条博客是基于正点原子mini板的代码. 创建文件夹.源文件以及设置路径就不讲了,直接附上代码. 库函数配置步骤 在模板中新建文件夹用于存放 led.c 和 led.h文 ...
- STM32笔记2-使用库函数点亮LED灯
目录 一.硬件电路设计 二.软件设计 1.工程配置 2.程序编写 (1)led头文件 (2)Led_Init()函数编写 三.实验测试 四.使用宏定义 1.修改后的led.h中程序 2.修改后的Led ...
- 基于STM32F103入门1——点亮LED灯
今天学习了STM32固件库点灯程序 点灯也可以玩过很多好玩的东西,在这里做一下总结. STM32点灯程序合集 1:新建固件库工程文件 1.1找到一个固件库模板 1.2:打开KEIL5新建工程 1.3: ...
- 一灯大师,基于imx6ull点亮LED灯
一.imx6ull GPIO原理 1. STM32 GPIO回顾 我们一般拿到一款全新的芯片,第一个要做的事情的就是驱动其 GPIO,控制其 GPIO 输出高低电平,我们学习 I.MX6U 也一样的, ...
- STM32F103开关控制LED灯
本文主要介绍了通过中断来实现开关控制LED灯的亮和灭. 软件:Keil μVision 芯片:STM32F103C8T6 文章目录 一.实验简介 二.实验原理 1. NVIC简介 2.EXTI简介 三 ...
- 【STM32】STM32CubeMX教程二--基本使用(新建工程点亮LED灯)
前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯 面向初学者 如果 ...
- Clion安装及相关环境(MinGW和OpenOCD)的配置及利用Clion点亮led灯
目录 一.安装环境 1.clion 2.Stm32cubeMX 3. 安装clion的相关配置环境 3.1 安装MinGW 3.2安装OpenOCD环境 二.利用clion点亮LED灯 1.利用cli ...
最新文章
- java OpenCv Mat 类的基本操作(3)
- php动态加载js,动态加载script文件的两种方法_javascript技巧
- 【LeetCode从零单排】No100 Same Tree No101 Symmetric Tree
- 极简数据分析实操指南(下)
- 商城项目使用到的主要技术分析
- Oracle入门(十四.4)之在PL / SQL中使用变量
- 主板扩展槽图解_子板:扩展到主板
- JS 数组常用函数(数组合并、数组转字符串、顺序反转、范围选择、排序、插入数据、删除数据)
- 【API进阶之路6】一个技术盲点,差点让整个项目翻车
- opencv和python是什么关系_使用OpenCV和Python检测眼睛
- SP2010开发和VS2010专家食谱--第一章节--列表和事件接收器(6)--使用列表事件接收器...
- 用python画多来a梦-python 绘制哆啦A梦
- 数组自带的函数(方法)
- 如何解决大规模高性能存储可靠性问题?
- ConstraintLayout 完全解析 快来优化你的布局吧
- un-app网易云歌词滚动功能
- RS485/RS422接线图
- 结对开发石家庄地铁查询系统
- 【转】js高德地图图标合集
- rust怎么拆除墙壁指令_腐蚀RUST指令大全