1.基于STM32F103C8T6,嵌入式学习(GPIO输出)

第一章 GPIO输出

GPIO通用输入输出口,想必大家都不会陌生。因此本章节只是单独的抓住主要的知识点开始讲解。

1、GPIO的模式

GPIO可以配置8种输入输出模式:
GPIO_Mode_AIN //模拟输入,一般用在ADC
GPIO_Mode_IN_FLOATING //浮空输入
GPIO_Mode_IPD//下拉输入,默认为低电平
GPIO_Mode_IPU//上拉输入,默认为高电平
GPIO_Mode_Out_OD //开漏输出
GPIO_Mode_Out_PP //推挽输出
GPIO_Mode_AF_OD //复用开漏输出
GPIO_Mode_AF_PP //复用推挽输出
由于我对硬件方面的只是不是很了解,所以之前对于如何选择GPIO口的模式很陌生,这边给大家一些基础的选择方法:我们如果我们想要配置输入的模式的话,一般来说都是选择使用上拉输入模式,要使用ADC外设时选择使用模拟输入。对于输出的模式,一般选择推挽输出,因为他对电路有较强的驱动能力。当然了,如果实在不知道选择什么模式的话,那当然是去查看数据手册了,是最正确的。
STM32数据手册,可以查看第8章的8.1.11外设GPIO配置这一章节,里面有给出具体的选择配置模式。
下面给出GPIO的基本结构,大家想要仔细了解GPIO8种配置模式的话可以自行查看数据手册,也可以去B站观看江科大自化协(江协科技)的视频,讲解的很详细。
在这里插入图片描述

2.点亮LED灯,配置流程

学习嵌入式,经典老套路来了,那就是点亮一个LED灯,这边我给大家分解下配置的步骤。
1.开始GPIO时钟
当我们学习每一种外设的时候,基本上这个函数是必不可少的,那就是开始外设的时钟。那么开始GPIO主要是挂载在APB2总线上,所以开启时钟函数就是 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
2.配置GPIO结构体的相关参数
STM32官方给我们封装好了库函数,基本上把外设都封装成一个结构体,因此我们只要调用就可以了。
相关函数如下:

GPIO_InitTypeDef GPIO_InitStructure;//定义一个结构体
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//选择gpio_pin_0引脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//读写的速度
GPIO_Init(GPIOA, &GPIO_InitStructure);

3.1LED闪烁代码具体实现

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	while (1)
	{
		GPIO_ResetBits(GPIOA, GPIO_Pin_0);//将指定引脚置为0(低电平)
		Delay_ms(500);
		GPIO_SetBits(GPIOA, GPIO_Pin_0);//将指定引脚置为1(高电平)
		Delay_ms(500);
		
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);//将bit_reset(低电平)写入到指定引脚
		Delay_ms(500);
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);//将bit_set(高电平)写入到指定引脚
		Delay_ms(500);
		
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0);
		Delay_ms(500);
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)1);
		Delay_ms(500);
	}
}

结语

GPIO是STM32学习当中最简单最基础的外设,他的主要库函数就是配置GPIO参数,以及将引脚置为高电平或者低电平,读取GPIO端口的值等,之后会带大家一起学习。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值