• STM32F4寄存器初始化系列:GPIO


     1 static void GPIO_Init(void)
     2 {
     3   
     4   //sound
     5   GPIO_Set(GPIOB,PIN4,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能
     6   PBout(4)=0; 
     7   
     8   //24路ADC采集
     9   GPIO_Set(GPIOA,PIN0|PIN1|PIN2|PIN3|PIN4|PIN5|PIN6|PIN7,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);    //PA0,模拟输入,下拉
    10   GPIO_Set(GPIOB,PIN0|PIN1,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);    //PA0,模拟输入,下拉 
    11   GPIO_Set(GPIOC,PIN0|PIN1|PIN2|PIN3|PIN4|PIN5,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);
    12   GPIO_Set(GPIOF,PIN3|PIN4|PIN5|PIN6|PIN7|PIN8|PIN9|PIN10,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);
    13   
    14   //TFT
    15   GPIO_Set(GPIOG,PIN13|PIN14|PIN15,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);//PG13/PG14设置 
    16   GPIO_AF_Set(GPIOB,3,5);    //PB3,AF5 
    17   GPIO_AF_Set(GPIOB,5,5);    //PB3,AF5 
    18   GPIO_Set(GPIOB,PIN3|PIN5,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);//复用功能,下拉输出
    19   
    20   
    21   //触摸
    22   GPIO_Set(GPIOE,PIN0,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
    23   GPIO_Set(GPIOB,PIN9|PIN7,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
    24   GPIO_Set(GPIOB,PIN6,GPIO_MODE_IN,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
    25   GPIO_Set(GPIOB,PIN8,GPIO_MODE_IN,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
    26   
    27   //指南针USART2
    28   GPIO_AF_Set(GPIOD,6,7);       //接收
    29   GPIO_Set(GPIOD,PIN5,GPIO_MODE_OUT,GPIO_OTYPE_OD,GPIO_SPEED_50M,GPIO_PUPD_PU);
    30   PDout(5)=1;
    31   
    32   GPIO_Set(GPIOD,PIN6,GPIO_MODE_AF,GPIO_OTYPE_OD,GPIO_SPEED_50M,GPIO_PUPD_PU);
    33   
    34   //蓝牙USART5
    35   GPIO_AF_Set(GPIOD,2,8);    
    36   GPIO_AF_Set(GPIOC,12,8);
    37   GPIO_Set(GPIOD,PIN2,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
    38   GPIO_Set(GPIOC,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
    39   
    40   //蓝牙匹配状态
    41   GPIO_Set(GPIOG,PIN5,GPIO_MODE_IN,GPIO_OTYPE_OD,GPIO_SPEED_2M,GPIO_PUPD_NONE);
    42   
    43   //蓝牙指令和透传切换  空闲高电平,  发送80ms低脉冲可切换
    44   GPIO_Set(GPIOG,PIN6,GPIO_MODE_OUT,GPIO_OTYPE_OD,GPIO_SPEED_2M,GPIO_PUPD_PU);
    45   PGout(6)=1;
    46   
    47   //蓝牙断开匹配  空闲高电平,  发送80ms低脉冲可断开
    48   GPIO_Set(GPIOG,PIN7,GPIO_MODE_OUT,GPIO_OTYPE_OD,GPIO_SPEED_2M,GPIO_PUPD_PU);
    49   PGout(7)=1;
    50   
    51   //蓝牙开关   高关闭,低打开
    52   GPIO_Set(GPIOA,PIN8,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_2M,GPIO_PUPD_PD);
    53   PAout(8)=0;
    54   
    55   //LED灯
    56   GPIO_Set(GPIOF,PIN0,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_2M,GPIO_PUPD_PU);
    57   PFout(0)=1;
    58   
    59   
    60   //主电机PWM输出 ************
    61   GPIO_AF_Set(GPIOD,12,2);    //PD12,AF2    定时器4
    62   GPIO_AF_Set(GPIOD,13,2);    //PD13,AF2 
    63   GPIO_AF_Set(GPIOD,14,2);    //PD14,AF2 
    64   GPIO_AF_Set(GPIOD,15,2);    //PD15,AF2 
    65   GPIO_Set(GPIOD,PIN12|PIN13|PIN14|PIN15,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能
    66   
    67   GPIO_AF_Set(GPIOC,6,3);    //PC6,AF3    定时器8
    68   GPIO_AF_Set(GPIOC,7,3);    //PD7,AF3 
    69   GPIO_AF_Set(GPIOC,8,3);    //PD8,AF3 
    70   GPIO_AF_Set(GPIOC,9,3);    //PD9,AF3 
    71   GPIO_Set(GPIOC,PIN6|PIN7|PIN8|PIN9,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能
    72   
    73   //RUN **********
    74   GPIO_Set(GPIOG,PIN3,GPIO_MODE_IN,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
    75   
    76   //KM *******
    77   GPIO_Set(GPIOG,PIN9,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
    78   
    79   //DJ *********
    80   GPIO_Set(GPIOD,PIN7,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
    81   
    82   
    83 }
  • 相关阅读:
    LintCode A+B问题
    LintCode 斐波纳契数列
    LintCode 删除链表中的元素
    LintCode 整数排序
    c++ lower_bound upper_bound
    259. 3Sum Smaller
    86. Partition List
    209. Minimum Size Subarray Sum
    11. Container With Most Water
    360. Sort Transformed Array
  • 原文地址:https://www.cnblogs.com/penuel/p/11265274.html
Copyright © 2020-2023  润新知