GPIO_SetBits(LED0_GPIO_Port, LED0_Pin); //输出高电平,LED0熄灭 GPIO_InitStructure.GPIO_Pin=LED1_Pin; //选择设置LED1的IO口 GPIO_Init(LED1_GPIO_Port,&GPIO_InitStructure); /* 初始化GPIO */ GPIO_SetBits(LED1_GPIO_Port, LED1_Pin); //输出高电平,LED01熄灭 } (6)添加文件在目录,并添...
至于为什么要用两个下划线来定义“__LED_H”标号,其实这只是防止它与其它普通宏定义重复了,如我们用“GPIO_PIN_0”来代替这个判断标号,就会因为stm32f4xx.h已经定义了GPIO_PIN_0,结果导致“bsp_led.h”文件无效了,“bsp_led.h”文件一次都没被包含。Next...
GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN); } (4)主函数 int main(void) { /* LED端口初始化 */ LED_GPIO_Config(); /* 按键端口初始化 */ Key_GPIO_Config(); /* 轮询按键状态,若按键按下则反转LED */ while(1) { if(GPIO_ReadInputDataBit(KEY1_GPIO_PORT, KEY1_GPIO_PIN) == ...
GPIO_SetBits(LED1_GPIO_PORT,LED1_PIN);\ else \ GPIO_ResetBits(LED1_GPIO_PORT,LED1_PIN) #define LED2(a) if (a) \ GPIO_SetBits(LED2_GPIO_PORT,LED2_PIN);\ else \ GPIO_ResetBits(LED2_GPIO_PORT,LED2_PIN) #define LED3(a) if (a) \ GPIO_SetBits(LED3_GPIO_PORT,LED3_PIN...
GPIO_Init(LED_G_GPIO_PORT,&GPIO_InitStruct); /*设置初始状态为 SetBits 关闭LED灯(低电平点亮)*/ GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN); } 难点就是函数种运用了结构体指针: 下面我们来学习一下C语言中的结构体 1. 什么是结构体?
GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN); GPIO_SetBits(LED_B_GPIO_PORT, LED_B_GPIO_PIN); } 在bsp_led.h中,大量使用了宏定义,来封装硬件相关的函数 bsp_led.h #ifndef __BSP_LED_H #define __BSP_LED_H #include "stm32f10x.h" ...
1 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); 1. 功能描述: 根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器 输入参数1:GPIOx 输入参数2:GPIO_InitStruct 如:管脚号,速度,模式等(GPIO_Pin,GPIO_Speed,GPIO_Mode) ...
#define LED1_ON GPIO_ResetBits(LED1_PORT,LED1_PIN) //LED1对应引脚GPIOE.5拉低,亮 #define LED1_OFF GPIO_SetBits(LED1_PORT,LED1_PIN) //LED1对应引脚GPIOE.5拉高,灭 void led_init(void); //初始化led的GPIO端口 #endif LED.C文件 ...
PORT,LED1_PIN))?(GPIO_ResetBits(LED1_PORT,LED1_PIN)):(GPIO_SetBits(LED1_PORT,LED1_PIN)...
//LED端口引脚置位,处于关闭状态 GPIO_SetBits(LED_GPIO_PORT, LED_GPIO_PIN); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. #ifndef __BSP_LED_H #define __BSP_LED_H #include "wb32f10x.h" //LED GPIO宏定义 #define LED_GPIO_PIN GPIO_Pin_13 ...