旗点科技星空派(GD32)
直播中

cooldog123pp

15年用户 5945经验值
擅长:可编程逻辑 嵌入式技术 控制/MCU RF/无线
私信 关注
[GD32F303]

【星空派GD32F303开发板试用体验】+移植MultiButton,按键+串口+LED

本帖最后由 cooldog123pp 于 2021-11-6 22:08 编辑

板卡初次试用,先体验一下按键,串口,以及LED,这里移植了MultiButton,即按下按键2,LED1循环闪烁,并答应,依次按键3,按键4,按键5.
LED分别是PF0,PF1,PF2,PF3
QQ截图20211106212157.png
KEY对应的是PA0,PC13,PF5,PF4
QQ截图20211106212205.png
UART对应的是PA9和PA10
QQ截图20211106212217.png
在引出来的管脚上接上USB转TTL,并且接到电脑上去,如图
01.png

移植MultiButton,其他外设用开发板给的demo代码即可
在systick的中断函数中加入button的tick
  1. void SysTick_Handler(void)
  2. {
  3.         static uint8_t ButtonCnt;
  4.         ButtonCnt++;
  5.   delay_decrement();
  6.         if(ButtonCnt == 5)        
  7.          {
  8.                  button_ticks();
  9.                  ButtonCnt = 0;
  10.          }
  11. }
创建button,并在主函数里面循环查询,按下按键LED闪烁并且打印
  1. int main(void)
  2. {  
  3.                 static uint8_t btn2_event_val;
  4.                 static uint8_t btn3_event_val;
  5.                 static uint8_t btn4_event_val;
  6.                 static uint8_t btn5_event_val;
  7.     led_init();        
  8.                 uart0_init ();
  9.           key_init ();
  10.     systick_config();

  11.                 button_init(&btn2, read_button2_GPIO, 0);
  12.                 button_init(&btn3, read_button3_GPIO, 0);
  13.                 button_init(&btn4, read_button4_GPIO, 0);
  14.                 button_init(&btn5, read_button5_GPIO, 0);
  15.                 button_start(&btn2);
  16.                 button_start(&btn3);
  17.                 button_start(&btn4);
  18.                 button_start(&btn5);
  19.         
  20.                 printf("rn while() start! rn");
  21.    
  22.     while(1){
  23.                         if(btn2_event_val != get_button_event(&btn2)) {btn2_event_val = get_button_event(&btn2);}
  24.       if(btn3_event_val != get_button_event(&btn3)) {btn3_event_val = get_button_event(&btn3);}
  25.       if(btn4_event_val != get_button_event(&btn4)) {btn4_event_val = get_button_event(&btn4);}                                
  26.       if(btn5_event_val != get_button_event(&btn5)) {btn5_event_val = get_button_event(&btn5);}                                
  27.                                 
  28.                                 
  29.                         if(btn2_event_val == PRESS_DOWN) {
  30.                                 /* turn on LED1 */
  31.         led_on(0);
  32.                                 /* insert 200 ms delay */
  33.         delay_1ms(200);
  34.         /* turn on LED2 */
  35.         led_off(0);
  36.         /* insert 200 ms delay */
  37.         delay_1ms(200);
  38.                                 printf("rn Key2 PressDown! rn");
  39.                         }
  40.                         if(btn3_event_val == PRESS_DOWN) {
  41.                                 /* turn on LED1 */
  42.         led_on(1);
  43.                                 /* insert 200 ms delay */
  44.         delay_1ms(200);
  45.         /* turn on LED2 */
  46.         led_off(1);
  47.         /* insert 200 ms delay */
  48.         delay_1ms(200);
  49.                                 printf("rn Key3 PressDown! rn");
  50.                         }
  51.                         if(btn4_event_val == PRESS_DOWN) {
  52.                                 /* turn on LED1 */
  53.         led_on(2);
  54.                                 /* insert 200 ms delay */
  55.         delay_1ms(200);
  56.         /* turn on LED2 */
  57.         led_off(2);
  58.         /* insert 200 ms delay */
  59.         delay_1ms(200);
  60.                                 printf("rn Key4 PressDown! rn");
  61.                         }
  62.                         if(btn5_event_val == PRESS_DOWN) {
  63.                                 /* turn on LED1 */
  64.         led_on(3);
  65.                                 /* insert 200 ms delay */
  66.         delay_1ms(200);
  67.         /* turn on LED2 */
  68.         led_off(3);
  69.         /* insert 200 ms delay */
  70.         delay_1ms(200);
  71.                                 printf("rn Key5 PressDown! rn");
  72.                         }

  73.     }
  74. }
QQ截图20211106215030.png
VID_20211106_215405.gif
代码:
T1_LEDKEYUSART.rar (4.75 MB)
(下载次数: 6, 2021-11-6 22:08 上传)

往期试用:
【星空派GD32F303开发板试用体验】+板卡概览


更多回帖

发帖
×
20
完善资料,
赚取积分