您的位置:首页 > 其它

3、STM32 GPIO 基本操作

2016-11-27 12:01 260 查看
    

  STM32 GPIO 的操作主要包含以下几个步骤 :

1、时钟初始化

   时钟初始化包括系统时钟初始化与 GPIO 端口时钟使能。其中初始化系统时钟,有两种方式 :使用SystemInit()函数初始化为 72 MHz。或者根据前面章节讲解的方式自己去配置时钟大小。

   使能GPIO端口的时钟, 可以根据数据手册,配置相关寄存器,或者直接使用库函数的方式。

   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);

2、端口初始化

   定义 GPIO 端口结构体 GPIO_InitTypeDef GPIO_InitStruct; 通过该结构体,完成端口各种属性的配置。主要包含 :设置端口Pin脚, Pin 脚模式, 时钟等参数。

3、操作 GPIO 端口

   调用GPIO相关的函数来处理GPIO,例如 GPIO_SetBits()。

GPIO 操作LED小灯示例程序 :

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

/* 系统时钟初始化函数 */
void RCC_Config(void)
{
/* 初始化系统时钟 */
SystemInit();

/* 使能 GPIOF 端口的时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
}

/* 端口初始化函数 */
void GPIO_Config(void)
{
/* 定义GPIO结构体 */
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_6;         /* 选择第6个管脚 */
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;   /* 设置最高输出频率 */
GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;   /* 设置为推挽式输出 */

/* 配置GPIO_F端口 */
GPIO_Init(GPIOF, &GPIO_InitStruct);
}

int main(void)
{
RCC_Config();   /* 初始化时钟 */
GPIO_Config();  /* 初始化端口 */

while(1)
{
/* 置位 GPIOF_6 管脚 */
GPIO_SetBits(GPIOF, GPIO_Pin_6);

delay(2000000);

/* 复位 GPIOF_6 管脚 */
GPIO_ResetBits(GPIOF, GPIO_Pin_6);

delay(2000000);
}

return 0;
}

源代码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: