配置结果如下:(以后程序就不再放配置过程了,希望大家一定要熟练)
User配置:
Start配置:
Library配置:
延时函数配置:
代码部分:
main代码部分:
#include "stm32f10x.h" // Device header #include "delay.h" int main(void) { //GPIO三步骤:(RCC+GPIO两个外设)---右键跳转定义.h文件,然后拉到最后 //1.RCC开启GPIO时钟 //2.GPIO_Init初始化GPIO, //3.使用输出,输入控制GPIO口 //1.RCC初始化函数 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //2.GPIO_Init初始化GPIO GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //GPIO_Mode_AIN是模拟输入 //GPIO_Mode_IN_FL是浮空输入 //GPIO_Mode_IPD 下拉输入 //GPIO_Mode_IPU 上拉输入 //GPIO_Mode_Out_O开漏输出 //GPIO_Mode_Out_P推挽输出 //GPIO_Mode_AF_OD复用开漏 //GPIO_Mode_AF_PP复用推挽 GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); while(1) { //3.GPIO控制LED闪烁 //LED闪烁模式1: GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//点亮 Delay_ms(500);//控制延时时间可改变闪烁间隙 GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//熄灭 Delay_ms(500); //LED闪烁模式2: GPIO_ResetBits(GPIOA,GPIO_Pin_0);//把指定端口设定为低电平---点亮LED Delay_ms(500); GPIO_SetBits(GPIOA,GPIO_Pin_0);//把指定端口设定为高电平---熄灭LED Delay_ms(500); //LED闪烁模式3:枚举类型 GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);//通过第三个参数的值来指定端口 //把1和0的类型强制转化为枚举类型 Delay_ms(500); GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1); Delay_ms(500); } }
注:
//GPIO_Mode_Out_PP,推挽输出下,高低电平都有驱动
//GPIO_Mode_Out_OD,开漏输出模式下,高电平(相当于高阻态)没有驱动能力,低电平有驱动能力