单片机
返回首页

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管脚输出高电平

}


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 离子检测器电路分析

  • 一个简单的立体声平衡指示器电路

  • 分享一个电网倾角计电路

  • 使用NE555和磁簧开关的橱柜照明电路

  • 电谐波图形均衡器示意图

    相关电子头条文章