61 lines
1.1 KiB
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);
|
|
}
|