SMT32控制IO时,模式和速度如果一样可以省略

来源:互联网 发布:从零开始学英语 知乎 编辑:程序博客网 时间:2024/06/05 13:00
#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管脚输出高电平
}


0 0
原创粉丝点击