概述
文章目录
- 前言
- 一、1. STM32 I/O简介
- 二、GPIO的8种工作方式
- 1.输入:上拉、下拉和浮空输入配置
- 2.输入:模拟输入配置
- 3.输出:通用输出配置
- 4.输出:复用输出配置
- 三、GPIO相关寄存器
- 三、LED灯点亮
- 总结
前言
简单的描述一下GPIO和GPIO的八种工作模式,及GPIO相关寄存器,写一个点灯
一、1. STM32 I/O简介
在 STM32 中I/O 引脚,又称为GPIO (General-Purpose I/O),主要分为GPIOA、GPIOB、 GPIOC……不同的组,每组端口分为 0~15,共 16 个不同的引脚。
不同型号的芯片,具有不同的端口组和不同的引脚数量。
可以被软件设置成各种不同的功能及模式。
二、GPIO的8种工作方式
输入输出模式结构都可以由软件分别配置成8种模式,包括:浮空输入、上拉输入、下拉输入 、模拟输入、通用开漏输出、通用推挽式输出、复用推挽式输出和复用开漏输出,见表
1.输入:上拉、下拉和浮空输入配置
在上拉/下拉/浮空输入模式中,输出缓冲器被禁止,施密特触发器输入被激活,根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接,读输入数据寄存器的值可得到I/O状态
2.输入:模拟输入配置
模拟输入模式关闭了施密特触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设模块。如传送给 ADC 模块,由ADC 采集电压信号。所以使用 ADC外设时,必须设置为模拟输入模式。
3.输出:通用输出配置
如图6.3所示,图中箭头表示信号流动方向输出缓冲器是由 P-MOS 和 N-MOS 管组成的单元电路,推挽/开漏输出模式是根据其工作方式来命名的。
当I/O端口被配置为输出时,输出缓冲器被激活,施密特触发输入被激活,弱上拉和下拉电阻被禁止。
4.输出:复用输出配置
当I/O端口被配置为复用功能时,输出缓冲器被打开,内置外设的信号驱动输出缓冲器,施密特触发输入被激活,弱上拉和下拉电阻被禁止。
复用输出中:至于选择复用开漏输出还是复用推挽输出,是根据 GPIO 复用功能来选择的,如 GPIO 的引脚用作串口输出,则使用复用推挽输出模式;如用在I2C、SMBUS 等这些需要“线与”功能的复用场合,就使用复用开漏模式。
三、GPIO相关寄存器
三、LED灯点亮
LED0是PA8,LED1是PD2,且都是共阳极,高电平灭,低电平亮
主函数
#include "stm32f10x.h" // Device header
#include "led.h"
int main()
{
LED_Init();
while(1)
{
}
}
led.c
#include "led.h"
#include "stm32f10x.h" // Device header
#include "stm32f10x_gpio.h" // Keil::Device:StdPeriph Drivers:GPIO
void LED_Init()
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);//使能PA,PD时钟
//定义PA8,GPIO设置
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; //设置引脚
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; // 设置输出速度
GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化GPIO
GPIO_ResetBits(GPIOA,GPIO_Pin_8); //PA8输出低电平,L0亮
//定义PD2,GPIO设置
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; //设置引脚
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; // 设置输出速度
GPIO_Init(GPIOD,&GPIO_InitStructure); //初始化GPIO
GPIO_SetBits(GPIOD,GPIO_Pin_2); //PA8输出高电平,L1灭
}
led.h
#ifndef _LED_H
#define _LED_H
#include "stm32f10x_gpio.h"
void LED_Init(void);
#endif
总结
明天写按键和跑马灯。。。。
最后
以上就是体贴机器猫为你收集整理的STM32的GPIO(STM32F103RCT6-LED)前言一、1. STM32 I/O简介二、GPIO的8种工作方式三、GPIO相关寄存器三、LED灯点亮总结的全部内容,希望文章能够帮你解决STM32的GPIO(STM32F103RCT6-LED)前言一、1. STM32 I/O简介二、GPIO的8种工作方式三、GPIO相关寄存器三、LED灯点亮总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复