用gd32f103cb写一个下位机,每次按键按下并释放后,LED灯每隔1s亮一次,亮的时间持续0.5s,直到下一次按键按下并释放后,LED灯熄灭,按键端口是pa0,led端口是pc14,写出具体代码,
时间: 2024-06-13 11:08:33 浏览: 87
以下是使用gd32f103cb写一个下位机的代码,实现每次按键按下并释放后,LED灯每隔1s亮一次,亮的时间持续0.5s,直到下一次按键按下并释放后,LED灯熄灭。按键端口是pa0,led端口是pc14:
```c
#include "gd32f10x.h"
#define LED_PIN GPIO_PIN_14
#define LED_PORT GPIOC
#define KEY_PIN GPIO_PIN_0
#define KEY_PORT GPIOA
void gpio_init(void)
{
rcu_periph_clock_enable(RCU_GPIOA);
rcu_periph_clock_enable(RCU_GPIOC);
gpio_init(LED_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, LED_PIN);
gpio_init(KEY_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, KEY_PIN);
}
void delay(uint32_t count)
{
for (uint32_t i = 0; i < count; i++);
}
int main(void)
{
gpio_init();
while (1)
{
if (RESET == gpio_input_bit_get(KEY_PORT, KEY_PIN))
{
gpio_bit_set(LED_PORT, LED_PIN);
delay(500000);
gpio_bit_reset(LED_PORT, LED_PIN);
delay(500000);
}
else
{
gpio_bit_reset(LED_PORT, LED_PIN);
}
}
}
```
阅读全文