标准库
4种输入输出:
模拟输入 GPIO_Mode_AIN 浮空输入 GPIO_Mode_IN_FLOA
tiNG
下拉输入 GPIO_Mode_IPD 上拉输入 GPIO_Mode_IPU
开漏输出 GPIO_Mode_Out_OD 通用推挽输出 GPIO_Mode_Out_PP
复用开漏输出GPIO_Mode_AF_OD 复用推挽 GPIO_Mode_AF_PP
IO口速度
GPIO_Speed_10MHz GPIO_Speed_2MHz GPIO_Speed_50MHz
led
低电平有效、推挽输出、led管脚B5、E5
led.h文件
- #ifndef _LED_H_
- #define _LED_H_
- #define red_led PBout(5)
- #define green_led PEout(5)
- #include "STM32f10x.h"
- #include "sys.h"
- void led_init(void);
- #endif
led.c文件
- #include "led.h"
- //led初始化
- void led_init(void)
- {
- GPIO_InitTypeDef GPIO_INIT_LED;
-
- //使能时钟
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE, ENABLE);
-
- GPIO_INIT_LED.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_INIT_LED.GPIO_Pin = GPIO_Pin_5;
- GPIO_INIT_LED.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB,&GPIO_INIT_LED);
- GPIO_Init(GPIOE,&GPIO_INIT_LED);
-
- //点亮红绿led
- red_led = 0;
- green_led = 0;
- }
beep
高电平有效、推挽输出、beep管脚B8
beep.h
- #ifndef _BEEP_H_
- #define _BEEP_H_
- #define beep PBout(8)
- #include "stm32f10x.h"
- #include "sys.h"
- void beep_init(void);
- #endif
beep.c
- #include "beep.h"
- void beep_init(void)
- {
- GPIO_InitTypeDef GPIO_INIT_BEEP;
-
- //使能时钟
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
-
- GPIO_INIT_BEEP.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_INIT_BEEP.GPIO_Pin = GPIO_Pin_8;
- GPIO_INIT_BEEP.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB,&GPIO_INIT_BEEP);
- beep = 1;
- }
main.c
- #include "stm32f10x.h"
- #include "led.h"
- #include "beep.h"
- int main(void)
- {
- led_init();
- beep_init();
- while(1);
- }