一、原理
1、定义初始化用的结构体变量
2、使能用到的时钟
3、设置结构体变量内部的值
4、调用初始化函数进行初始化
二、代码
#include "stm32f10x.h"
#include <stdio.h>
void Led_Init(void);
int main(void)
{
Led_Init();//初始化led的io口
GPIO_SetBits(GPIOD, GPIO_Pin_2);//打开控制led的锁存器
while (1)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_8);//将io口置0,即将led点亮
GPIO_ResetBits(GPIOC, GPIO_Pin_9);
GPIO_ResetBits(GPIOC, GPIO_Pin_10);
}
}
void Led_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;//定义io口结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//每组io口都有对应的时钟,使用那种组io口就要打开其对应的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10;//gpio阶构体有三个变量,先给gpio_pin赋值
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//设置io口模式
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;//设置io口频率
GPIO_Init(GPIOC, &GPIO_InitStruct);//对io口进行初始化
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;//同上
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOD, &GPIO_InitStruct);
}