GPIO_Init(LED1_GPIO_PORT,&GPIO_InitStructure); /*选择要控制的GPIO引脚*/ GPIO_InitStructure.GPIO_Pin=LED2_PIN; GPIO_Init(LED2_GPIO_PORT,&GPIO_InitStructure); /*选择要控制的GPIO引脚*/ GPIO_InitStructure.GPIO_Pin=LED3_PIN; GPIO_Init(LED3_GPIO_PORT,&GPIO_InitStructure); /*关闭RGB灯*/ LE...
LED1=!LED1;这就是一条单片机一个引脚状态取反操作的语句,很简单的操作,编译后就是一条汇编指令,根本不需要什么函数。其实,在单片机中每一个引脚都是按一个位操作的,所以,就是一条位操作指令,也没有这种库函数。
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure);...
之前玩过单片机的同学都知道,搞嵌入式都是从点灯开始的。ELF1开发板左下角有红、绿、黄三个LED灯,核心板有一个LED心跳灯。控制一个LED灯亮灭的方法有很多,可以给灯的两端施加电压差,通过改变上下拉即可。也可以通过Linux中的pinctrl子系统和GPIO子系统,通过配置引脚和系统提供的API进行控制。
#define LED1_TOGGLE digitalTOGGLE(GPIO_PORT_D4,GPIO_PIN_D4) #define LED2_TOGGLE digitalTOGGLE(GPIO_PORT_D5,GPIO_PIN_D5) /*配置GPIO*/ void LED_GPIO_Config(void); #endif /*__BSP_LED_H__*/ bsp_led.c: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...
LED驱动 hal库的使用比较简单,可以直接在STM32CubeMX中分配好IO之后一键生成工程,为了提高程序的可读性,自己写一个头文件,在调用过程中会比较简单。 drv_led.h: #ifndef__DRV_LED_H#define__DRV_LED_H#defineLED1_PIN GPIO_PIN_8#defineLED1_PORT GPIOA#defineLED2_PIN GPIO_PIN_2#defineLED2_PORT GPIO...
11定义结构体变量 typedef struct { GPIO_TypeDef * port; uint16_t pin; }GPIO_PackDef; 定义数据类型为“引脚封装结构体”的leds[]数组,并初始化 GPIO_PackDef leds[8]= { {GPIOA, GPIO_PIN_4}, //PA4引脚,接LED灯D1 {GPIOA, GPIO_PIN_3}, //PA3引脚 {GPIOA, GPI