#include "FreeRTOS.h" #include "FreeRTOSConfig.h" #include "gd32f107c_eval.h" #include "gd32f10x_gpio.h" #include "stdio.h" #define BUTTON_USER GPIO_PIN_14 #define LED_USER GPIO_PIN_0 char ButtonState = 0; int stdout_putchar (int ch); int stdin_getchar (void); void DelayMS(unsigned char ms); int stdout_putchar (int ch) { usart_data_transmit(EVAL_COM1, (uint16_t)ch); DelayMS(1); return ch; } int stdin_getchar (void) { return usart_data_receive(EVAL_COM1); } void DelayMS(unsigned char ms) { unsigned long us = 1000*ms; while (us--) { __NOP(); } } { while (1) { ButtonState = !gpio_input_bit_get(GPIOB, BUTTON_USER); if (ButtonState) { printf("Hello world\n"); DelayMS(250); DelayMS(250); } } } int main(void) { SystemInit(); //gd_eval_led_init(LED2); //gd_eval_led_on(LED2); rcu_periph_clock_enable(RCU_GPIOC); gpio_init(GPIOC, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, LED_USER); gpio_bit_set(GPIOC, LED_USER); gd_eval_com_init(EVAL_COM1); rcu_periph_clock_enable(RCU_GPIOB); gpio_init(GPIOB, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, BUTTON_USER); xPortStartScheduler(); while(1); }