sky-Hawk where 发表于 2015-8-3 22:27:27

GD32之串口调试 - 使用串口终端模式控制LED亮灭

当硬件板本身没有显示装置时串口终端模式是一种方便的沟通方式,透过串口接口让上位机与硬件板连接,由上位机下命令给硬件板或者是硬件板通过串口回传运行状态或是数据在上位机显示。

这一个程序的功能就是透过串口终端模式控制 GD32 Colibri-F150R8 开发板上的 2 颗 LED 亮灭状态:

输入字元 1 控制 LED1 状态翻转并回送状态讯息。
输入字元 2 控制 LED2 状态翻转并回送状态讯息。
输入字元 ? 回送 LED1 与 LED2 状态讯息。
输入其他字元回送 ??? 讯息。

主 while 回圈:while(1)
{
    if(USART_GetBitState(USART1, USART_FLAG_RBNE) == SET)
    {
      switch (USART_DataReceive(USART1))
      {
            case '1':
                if(fg_LED1 == LED_ON)
                {
                  fg_LED1 = LED_OFF;
                  EVB_LEDControl(LED1, LED_OFF);
                  EVB_Uart1WriteStr("LED1 OFF\n");
                }
                else
                {
                  fg_LED1 = LED_ON;
                  EVB_LEDControl(LED1, LED_ON);
                  EVB_Uart1WriteStr("LED1 ON\n");
                }
                break;
            case '2':
                if(fg_LED2 == LED_ON)
                {
                  fg_LED2 = LED_OFF;
                  EVB_LEDControl(LED2, LED_OFF);
                  EVB_Uart1WriteStr("LED2 OFF\n");
                }
                else
                {
                  fg_LED2 = LED_ON;
                  EVB_LEDControl(LED2, LED_ON);
                  EVB_Uart1WriteStr("LED2 ON\n");
                }
                break;
            case '?':
                if(fg_LED1 == LED_ON)
                  EVB_Uart1WriteStr("LED1:ON , ");
                else
                  EVB_Uart1WriteStr("LED1:OFF , ");
                if(fg_LED2 == LED_ON)
                  EVB_Uart1WriteStr("LED2:ON\n");
                else
                  EVB_Uart1WriteStr("LED2:OFF\n");
                break;
            default:
                EVB_Uart1WriteStr("???\n");
                break;
      }
    }
}
程序运行后,输入 ? 查询 LED 状态:


开发板 LED 状态


输入 1


开发板 LED 状态


输入 1 2


开发板 LED 状态


输入 1 ?


开发板 LED 状态


输入其他字元




程序代码:




GD32之双串口调试 - RFID ID读取显示



王祥_ba120b 发表于 2021-11-3 18:38:30

骗子,大家别下
页: [1]
查看完整版本: GD32之串口调试 - 使用串口终端模式控制LED亮灭