main.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*!
  2. \file main.c
  3. \brief standby wakeup through wakeup pin
  4. */
  5. /*
  6. Copyright (C) 2017 GigaDevice
  7. 2017-06-06, V1.0.0, firmware for GD32F3x0
  8. */
  9. #include "gd32f3x0.h"
  10. #include <stdio.h>
  11. #include "gd32f3x0_eval.h"
  12. void led_config(void);
  13. /*!
  14. \brief main function
  15. \param[in] none
  16. \param[out] none
  17. \retval none
  18. */
  19. int main(void)
  20. {
  21. /* clock enable */
  22. rcu_periph_clock_enable(RCU_PMU);
  23. /* led configuration and turn on all led */
  24. led_config();
  25. gd_eval_led_on(LED1);
  26. gd_eval_led_on(LED3);
  27. gd_eval_led_on(LED2);
  28. gd_eval_led_on(LED4);
  29. /* tamper key configuration */
  30. gd_eval_key_init(KEY_TAMPER, KEY_MODE_GPIO);
  31. /* wakeup pin enable */
  32. pmu_wakeup_pin_enable(PMU_WAKEUP_PIN0);
  33. /* press tamper key to enter standby mode and use wakeup key to wakeup mcu */
  34. while(1){
  35. if(RESET == gpio_input_bit_get(TAMPER_KEY_GPIO_PORT, TAMPER_KEY_PIN)){
  36. pmu_to_standbymode(WFI_CMD);
  37. }
  38. }
  39. }
  40. /*!
  41. \brief configure led
  42. \param[in] none
  43. \param[out] none
  44. \retval none
  45. */
  46. void led_config(void)
  47. {
  48. gd_eval_led_init(LED1);
  49. gd_eval_led_init(LED2);
  50. gd_eval_led_init(LED3);
  51. gd_eval_led_init(LED4);
  52. }