目录
首先,main.c文件中的基本结构是:
#include"stm32f10x.h"
int main(void)
{
while (1)
{
}
}
操作STM32的GPIO需要三个步骤:
1、使用RCC开启GPIO时钟
2、使用GPIO_Init函数初始化GPIO
3、使用输出或输入函数控制GPIO口
这里总共涉及到RCC和GPIO两个外设。
一、RCC库函数
在Library文件夹中找到rcc.h文件,打开,拖到最下方,有RCC库函数的所有声明:
其中,最常用的是692、693、694行函数,即RCC AHB外设时钟控制、RCC APB2 外设时钟控制、RCC APB1 外设时钟控制,它们均可通过在编译后右键函数跳转到定义来查看。
二、GPIO库函数
在Library文件夹中找到gpio.h文件,打开,拖到最下方,有GPIO库函数的所有声明:
349行:将指定的GPIO外设复位
350行:复位AFIO外设
351行:用结构体的参数来初始化GPIO口
352行:把结构体变量赋为一个默认值
353~356行:GPIO读取函数
357~360行:GPIO写入函数
1、GPIO的8种工作模式:
这8种模式分别是:模拟输入、浮空输入、下拉输入、上拉输入、开漏输出、推挽输出、复用开漏、复用推挽
2、GPIO的输出速度:
在对功耗和噪声要求不高时,一般选择50MHz的输出速度。
1.GPIO读取
GPIO_ReadInputDataBit:读取输入数据寄存器某一端口的值(返回uint8_t无符号8位整数),0代表低电平,1代表高电平
GPIO_ReadInputData:读取整个输入数据寄存器(返回uint16_t无符号16位整数)
GPIO_ReadOutputDataBit:读取输出数据寄存器某一端口的值,返回uint8_t
GPIO_ReadOutputData:读取整个输出数据寄存器,返回uint16_t
2.GPIO写入
GPIO_SetBits:将指定端口设置为高电平
GPIO_ResetBits:将指定端口设置为低电平
GPIO_WriteBit:设置指定端口的值
GPIO_Write:同时对16个端口进行写入操作