上一章配置好了环境,就可以写程序了
配置GPIO口有如下几个步骤
- 时钟使能,也就是rcc使能(stm32默认是关闭)
- 选择引脚
- 选择引脚模式
- 配置输出状态
- 设置速度
- 初始化引脚
首先在led.h写如下程序
#ifndef __led_h
#define __led_h
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
void led_pin_config(void);
#endif
然后在led.c写
#include "stm32f10x.h"
void led_pin_config(void)
{
GPIO_InitTypeDef ledPin; //将stm32f10x_gpio.h中gpio初始化结构体定义为ledpin
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启A口时钟 在stm32f10x_rcc.c可找到定义
//下面的函数均可在stm32f10x_gpio.h找到相关定义
ledPin.GPIO_Pin = GPIO_Pin_0; //A0口
ledPin.GPIO_Mode = GPIO_Mode_Out_PP; //模式为输出,推挽模式,相关枚举都在这个头文件
ledPin.GPIO_Speed = GPIO_Speed_2MHz; //切换速度为2MH,对于点灯来说,无所谓
GPIO_Init(GPIOA, &ledPin); //初始化引脚
}
最后main.c写
#include "stm32f10x.h"
#include "led.h"
int main(void)
{
led_pin_config();
GPIO_SetBits(GPIOA, GPIO_Pin_0); //小灯正极接A0,负极接GND,故给高电平
while(1);
}
效果如下