SMT32控制IO时,模式和速度如果一样可以省略
2019-02-14 来源:eefocus
#include 'led.h'
#include 'stm32f10x.h'
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO初始化结构体
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //PB口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE); //PG口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE); //PF口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //PC口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //PE口时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA,ENABLE);
这里五行代码用一行就可以了,用 | ,体现了算法的精妙!
//下面的用到的IO口工作模式和速度都是一样的,所以设置一次就行
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //设置第13管脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOB, GPIO_Pin_13); //设置PB13管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //设置第0管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOG, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOG, GPIO_Pin_0); //设置PG0管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //设置第14管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOF, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOF, GPIO_Pin_14); //设置PF14管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; //设置第12管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOF, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOF, GPIO_Pin_12); //设置PF12管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //设置第2管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOB, GPIO_Pin_2); //设置PB2管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //设置第0管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOB, GPIO_Pin_0); //设置PB0管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; //设置第4管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOC, GPIO_Pin_4); //设置PC0管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //设置第5管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOA, GPIO_Pin_6); //设置PA6管脚输出高电平
}