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); }
头文件的路径添加
#ifndef __LED_H__ #define __LED_H__ void LED_Init(void); #endif
#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); } }
M54