void bsp_LedOn(uint8_t _no) { _no--; if (_no == 0) { GPIO_PORT_LED1->BSRR = (uint32_t)GPIO_PIN_LED1 << 16U; } else if (_no == 1) { GPIO_PORT_LED2->BSRR = (uint32_t)GPIO_PIN_LED2 << 16U; } else if (_no == 2) { GPIO_PORT_LED3->BSRR = (uint32_t...
RGB灯里面的三个小灯都可以单独控制,如果有两个或者三个灯同时亮的话就会混合成其它的颜色。 V1 V2 这些LED灯的阴极都是连接到STM32的GPIO引脚,只要我们控制GPIO引脚的电平输出状态,即可控制LED灯的亮灭。若你使用的实验板LED灯的连接方式或引脚不一样,只需根据我们的工程修改引脚即可,程序的控制原理相同。
GPIO_PORT_LED3->BSRR = (uint32_t)GPIO_PIN_LED3 <<16U; }elseif(_no ==3) { GPIO_PORT_LED3->BSRR = (uint32_t)GPIO_PIN_LED4 <<16U; } } 函数描述: 此函数主要用于点亮LED,使用BSRR寄存器实现,使用这个寄存器的好处是可以实现原子操作。 函数参数: 第1个参数用于指定点亮那个LED,范围1-4...
#define LED1_TOGGLE digitalToggle(LED1_GPIO_PORT,LED1_PIN) #define LED1_OFF digitalHi(LED1_GPIO_PORT,LED1_PIN) #define LED1_ON digitalLo(LED1_GPIO_PORT,LED1_PIN) #define LED2_TOGGLE digitalToggle(LED2_GPIO_PORT,LED2_PIN) #define LED2_OFF digitalHi(LED2_GPIO_PORT,LED2_PIN) #defi...
/*直接操作寄存器的方法控制*/#definedigitalHi(p,i) {p->BSRR=i;}//输出为高电平#definedigitalLo(p,i) {p->BRR=i;}//输出为低电平#definedigitalToggle(p,i) {p->ODR ^=i;}//输出反转状态/* 定义控制IO的宏 */#defineLED1_TOGGLE digitalToggle(LED1_GPIO_PORT,LED1_GPIO_PIN)#defineLED1_OF...
HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET); 至此,我们的Led驱动就完成了! 可以去测试一下了。 3.3 LED驱动测试 准备好的东西有: STM32板子 x 1: stm32 STLink x 1: stlink 接线 按照笔者买的型号的话: | STLINK | STM32 | |--|--| | SWCLK | CLK | | SWDIO | DIO |...
GPIOB->BSRR = (1u << 3u); //PB4对应的LED3初始化状态为灭 GPIOB->BSRR = (1u << 4u); 按键扫描 读GPIOx_IDR寄存器获取对应端口输入数据,本实验中K2配置为上拉输入,即按键未按下时为高电平,按下按键后,K2对应端口输入为低电平。若GPIOx_BSRR寄存器的低16位的对应端口位置1,则该端口为高电平;若...
功能:设置某个IO口为高电平(可同时设置同一端口的多个IO)。底层是通过配置BSRR寄存器。 void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 功能:设置某个IO口为低电平(可同时设置同一端口的多个IO)。底层是通过配置BSRR寄存器。 void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, ...
/*直接操作寄存器的方法控制 IO*/#define digitalHi(p,i) {p->BSRR=i;} //输出为高电平#define digitalLo(p,i) {p->BRR=i;} //输出低电平#define digitalToggle(p,i) {p->ODR ^=i;} //输出反转状态/* 定义控制 IO 的宏 */#define LED1_TOGGLE digitalToggle(LED1_GPIO_PORT,LED1_GPIO_PIN...
设置GPIOB端口的第5引脚输出高电平,第6引脚输出低电平,此时output_data变量的第五位和第六位分别为1和0。 5. GPIO实验 代码实现在注释中已详细解释。 5.1 跑马灯实验 实现开发板上两个LED灯实现跑马灯的效果。LED硬件电路如下: 根据硬件电路图知,两个LED灯对应的IO引脚分别为PortB5,PortB5,当两个引脚为低电平...