STM32G431RB单片机里,如何用代码实现呼吸灯
时间: 2023-05-23 10:03:57 浏览: 98
基于STM32单片机设计的PWM的呼吸灯控制KEIL工程源代码.zip
5星 · 资源好评率100%
您好,以下是实现 STM32G431RB 单片机的呼吸灯代码:
```
#include "stm32g4xx.h"
void delay(int time) {
while (time--);
}
int main(void) {
RCC->AHB2ENR |= RCC_AHB2ENR_GPIOBEN; // Enable GPIOB clock
GPIOB->MODER &= ~GPIO_MODER_MODE3_Msk;
GPIOB->MODER |= GPIO_MODER_MODE3_0; // Set PB3 as output
GPIOB->OTYPER &= ~GPIO_OTYPER_OT3_Msk;
GPIOB->OSPEEDR &= ~GPIO_OSPEEDR_OSPEED3_Msk;
GPIOB->PUPDR &= ~GPIO_PUPDR_PUPD3_Msk;
GPIOB->PUPDR |= GPIO_PUPDR_PUPD3_0; // Enable PB3 pull-up
while (1) {
for (int i = 0; i < 1000; i++) {
GPIOB->BSRR |= GPIO_BSRR_BS3; // Turn on LED
delay(i*10);
GPIOB->BSRR |= GPIO_BSRR_BR3; // Turn off LED
delay((1000-i)*10);
}
}
}
```
这段代码可以让 PB3 引脚控制的 LED 实现呼吸灯效果。在主函数的无限循环中,通过 for 循环控制时长,从而让 LED 渐亮或渐暗,实现呼吸灯效果。
阅读全文