ARM 【GPIO 库函数】

//重要的函数
1.初始化函数
void GPIO_Init(GPIO_Typedef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct);

2.2个读取输入电平函数
unit8_t GPIOReadInputDataBit(GPIO_Typedef*GPIOx,unit_t GPIO_Pin);

unit16_t GPIO_ReadOutputData(GPIO_TypeDef*GPIOx)
//两个读取输出电平函数
unit8_t GPIO_ReadOutputDataBit(GPIO_TypeDef*GPIO,unit16_GPIO_Pin);

unit16_t GPIO_ReadOutputData(GPIO_TypeDef*GPIOx)
//4个设置输出电平函数
void GPIO_SetBits(GPIO_TypeDef*GPIOx,unit16_t GPIO_Pin);

void GPIO_ResteBits(GPIO_TypeDef*GPIOx,unit16_t GPIO_Pin);

void GPIO_WriteBits(GPIO_TypeDef*GPIOx,unit16_t GPIO_Pin,BitAction BitVal);

void GPIO_Write(GPIO_TypeDef*GPIOx,unit16_t Portval);

 

 

 库函数

//头文件stm32f10x_gpio.h
//源文件stm32f10x_gpio.c

 

#include "led.h"
#include "stm32f10x.h"

void LED_Init(void)
{
 GPIO_InitTypeDef  GPIO_InitStructure;    

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //GPIOBµÄʱÖÓ´ò¿ª
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); //GPIOEµÄʱÖÓ´ò¿ª
    //GPIOµÄB¿Ú³õʼ»¯
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&GPIO_InitStructure);    
    GPIO_SetBits(GPIOB,GPIO_Pin_5);
     
    //GPIOµÄE¿Ú³õʼ»¯
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOE,&GPIO_InitStructure);    
    GPIO_SetBits(GPIOE,GPIO_Pin_5);
 
}
led.c

 头文件的路径添加

 

#ifndef __LED_H__
#define __LED_H__

void LED_Init(void);


#endif
led.h
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"

int main(void)
{
  delay_init();
    LED_Init();
    
    
    while(1)
    {
     GPIO_SetBits(GPIOB,GPIO_Pin_5);
     GPIO_ResetBits(GPIOE,GPIO_Pin_5);
      delay_ms(5000);
    
     GPIO_SetBits(GPIOE,GPIO_Pin_5);
     GPIO_ResetBits(GPIOB,GPIO_Pin_5);
     delay_ms(5000);
    
    }






}
main.c

 

posted @ 2019-04-05 15:23  Crown-V  阅读(601)  评论(0编辑  收藏  举报