GD32F303呼吸灯代码
时间: 2023-07-09 18:30:10 浏览: 191
以下是基于GD32F303芯片的呼吸灯代码:
```c
#include "gd32f303.h"
#include "systick.h"
#define LED_PIN GPIO_PIN_13
#define LED_PORT GPIOC
int main(void)
{
/* enable GPIO clock */
rcu_periph_clock_enable(RCU_GPIOC);
/* configure LED pin as output */
gpio_mode_set(LED_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LED_PIN);
gpio_output_options_set(LED_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, LED_PIN);
/* initialize SysTick timer */
if (SysTick_Config(SystemCoreClock / 1000)) {
/* capture error */
while (1);
}
uint16_t brightness = 0;
uint16_t fadeAmount = 5;
while (1) {
/* calculate new brightness */
brightness += fadeAmount;
/* reverse direction if brightness hits limits */
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount;
}
/* set LED brightness */
gpio_bit_write(LED_PORT, LED_PIN, brightness >> 7);
/* delay for 10ms */
delay_1ms(10);
}
}
```
该代码使用GPIOC13口控制LED灯,并通过SysTick计时器实现呼吸灯效果。在循环中,每隔10ms改变LED亮度,通过控制LED的亮度变化实现呼吸灯效果。
需要注意的是,此代码中的SysTick_Config函数需要在systick.h头文件中进行声明。同时,由于GPIOC13是与JTAG接口共用的,因此需要在调试时禁用JTAG才能正常运行。
阅读全文