3.GPIO

1.什么是GPIO

GPIO(General Purpose Input Output):通用输入输出口。

输出模式下可用于驱动LED、蜂鸣器、模拟通信协议输出时序等。

输入模式下可读取端口的高低电平和电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。

GPIO挂载在APB2总线上

2.GPIO模式

推挽输出(PP):STM32端口完全由GPIO控制,寄存器写入高电平端口输出高电平,写入低电平输出低电平

上拉输入(IPU):悬空时默认引脚为高电平

3.GPIO输出

GPIO配置流程:

1.初始化

1.1打开GPIO对应时钟

1.2选择模式,这里选择推挽输出

1.3选择端口号和速度

2.设置端口的输出

1.LED闪烁

1.LED原理图

2.硬件接线图

通过A0口控制LED灯

LED灯引脚较长的一端为正极,另一端为负极

tips:面包板的使用方法

顶部和底部的+-每行的孔洞相当于连接在一起

中间部分每列的孔洞相当于连接在一起

3.源码

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

int main(void)
{
	/*开启时钟*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	//开启GPIOA的时钟
															//使用各个外设前必须开启时钟,否则对外设的操作无效
	
	/*GPIO初始化*/
	GPIO_InitTypeDef GPIO_InitStructure;					//定义结构体变量
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		//GPIO模式,赋值为推挽输出模式
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;				//GPIO引脚,赋值为第0号引脚
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		//GPIO速度,赋值为50MHz
	
	GPIO_Init(GPIOA, &GPIO_InitStructure);					//将赋值后的构体变量传递给GPIO_Init函数
															//函数内部会自动根据结构体的参数配置相应寄存器
															//实现GPIOA的初始化
	
	/*主循环,循环体内的代码会一直循环执行*/
	while (1)
	{
		/*设置PA0引脚的高低电平,实现LED闪烁,下面展示3种方法*/
		
		/*方法1:GPIO_ResetBits设置低电平,GPIO_SetBits设置高电平*/
		GPIO_Rese
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值