RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_SPI1, ENABLE);
参数 GPIO_InitStruct :指向结构 GPIO_InitTypeDef 的指针,包含了外设 GPIO 的配置信息结构体参数 GPIO_Pin: 该参数选择待设置的 GPIO 管脚,使用操作符 “|” 可以一次选中多个管脚结构体参数 GPIO_Speed: GPIO_Speed 用以设置选中管脚的速率结构体参数 GPIO_Mode: GPIO_Mode 用以设置选中管脚的工作状态
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO模式,赋值为推挽输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //GPIO引脚,赋值为第0号引脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO速度,赋值为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //将赋值后的构体变量传递给GPIO_Init函数
//函数内部会自动根据结构体的参数配置相应寄存器
//实现GPIOA的初始化
GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);
GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);
参数 BitVal:该参数指定了待写入的值,该参数必须取枚举 BitAction 的其中一个值
Bit_SET:设置数据端口位高电平
Bit_RESET:设置数据端口位低电平
GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);
#include "stm32f10x.h" // Device header
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //开启GPIOC的时钟
//使用各个外设前必须开启时钟,否则对外设的操作无效
GPIO_InitTypeDef GPIO_InitStruct; //定义结构体变量
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //GPIO模式,赋值为推挽输出模式
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13; //GPIO引脚,赋值为第13号引脚
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //GPIO速度,赋值为50MHz
GPIO_Init(GPIOC,&GPIO_InitStruct); //将赋值后的构体变量传递给GPIO_Init函数
//函数内部会自动根据结构体的参数配置相应寄存器
//实现GPIOC的初始化
GPIO_ResetBits(GPIOC,GPIO_Pin_13); //将PC13引脚设置为低电平
while(1)
{
}
}
#include "stm32f10x.h" // Device header
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //开启GPIOC的时钟
//使用各个外设前必须开启时钟,否则对外设的操作无效
GPIO_InitTypeDef GPIO_InitStruct; //定义结构体变量
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //GPIO模式,赋值为推挽输出模式
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13; //GPIO引脚,赋值为第13号引脚
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //GPIO速度,赋值为50MHz
GPIO_Init(GPIOC,&GPIO_InitStruct); //将赋值后的构体变量传递给GPIO_Init函数
//函数内部会自动根据结构体的参数配置相应寄存器
//实现GPIOC的初始化
GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET); //将PC13引脚设置为低电平
while(1)
{
}
}
LED灯闪烁需要用到江协科技的Delay库函数。
#include "stm32f10x.h" // Device header
#include "Delay.h"
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //开启GPIOC的时钟
//使用各个外设前必须开启时钟,否则对外设的操作无效
GPIO_InitTypeDef GPIO_InitStruct; //定义结构体变量
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //GPIO模式,赋值为推挽输出模式
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13; //GPIO引脚,赋值为第13号引脚
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //GPIO速度,赋值为50MHz
GPIO_Init(GPIOC,&GPIO_InitStruct); //将赋值后的构体变量传递给GPIO_Init函数
//函数内部会自动根据结构体的参数配置相应寄存器
//实现GPIOC的初始化
while(1)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_13); //将PC13引脚设置为低电平
Delay_ms(500); //延时500ms
GPIO_SetBits(GPIOC,GPIO_Pin_13); //将PC13引脚设置为高电平
Delay_ms(500); //延时500ms
}
}
#include "stm32f10x.h" // Device header
#include "Delay.h"
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //开启GPIOC的时钟
//使用各个外设前必须开启时钟,否则对外设的操作无效
GPIO_InitTypeDef GPIO_InitStruct; //定义结构体变量
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //GPIO模式,赋值为推挽输出模式
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13; //GPIO引脚,赋值为第13号引脚
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //GPIO速度,赋值为50MHz
GPIO_Init(GPIOC,&GPIO_InitStruct); //将赋值后的构体变量传递给GPIO_Init函数
//函数内部会自动根据结构体的参数配置相应寄存器
//实现GPIOC的初始化
while(1)
{
/* GPIO_WriteBit设置低/高电平,由Bit_RESET/Bit_SET指定 */
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_RESET); //将PC13引脚设置为低电平
Delay_ms(500); //延时500ms
GPIO_WriteBit(GPIOC, GPIO_Pin_13, Bit_SET); //将PC13引脚设置为高电平
Delay_ms(500); //延时500ms
/* GPIO_WriteBit设置低/高电平,由数据0/1指定,数据需要强转为BitAction类型 */
GPIO_WriteBit(GPIOC, GPIO_Pin_13, (BitAction)0); //将PC13引脚设置为低电平
Delay_ms(500); //延时500ms
GPIO_WriteBit(GPIOC, GPIO_Pin_13, (BitAction)1); //将PC13引脚设置为高电平
Delay_ms(500); //延时500ms
}
}