下面以STM32F103为例:
1、新建工程
2、写出led头文件(目的是为了写宏文件,提高程序的可移植性,方便修改程序)
*注意:要使用条件编译:防止文件重复编译
#ifndef ___LED_H
#define ___LED_H
#endif /*__LED_H*/
3、定义一个GPIO结构体(GPIO_InitTypeDef)类型的变量//初始化结构体
GPIO_InitTypeDef GPIO_InitStruct;
4、打开GPIO的时钟
RCC_APB2PeriphClockCmd(LED_G_GPIO_CLK, ENABLE);
5、配置结构体成员(到GPIO固件库函数中寻找)
GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN ;//端口
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//模式(推挽输出)
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//速度
6、初始化GPIO
GPIO_Init(LED_G_GPIO_RORT , &GPIO_InitStruct);
7、将相应的引脚拉低、拉高
GPIO_SetBits(LED_G_GPIO_RORT, LED_G_GPIO_PIN);
GPIO_ResetBits(LED_G_GPIO_RORT, LED_G_GPIO_PIN);
注:以上均需看STM32手册中相关内容,如:原理图,总线架构图,寄存器等等。