GigaDevice_test/main.c

61 lines
1.1 KiB
C

#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);
}