查看: 5034|回复: 1

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

[复制链接]
  • TA的每日心情
    开心
    2021-12-10 15:56
  • 签到天数: 2675 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-8-3 22:27:27 | 显示全部楼层 |阅读模式
    分享到:
    当硬件板本身没有显示装置时串口终端模式是一种方便的沟通方式,透过串口接口让上位机与硬件板连接,由上位机下命令给硬件板或者是硬件板通过串口回传运行状态或是数据在上位机显示。

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

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

    主 while 回圈:
    1. while(1)
    2. {
    3.     if(USART_GetBitState(USART1, USART_FLAG_RBNE) == SET)
    4.     {
    5.         switch (USART_DataReceive(USART1))
    6.         {
    7.             case '1':
    8.                 if(fg_LED1 == LED_ON)
    9.                 {
    10.                     fg_LED1 = LED_OFF;
    11.                     EVB_LEDControl(LED1, LED_OFF);
    12.                     EVB_Uart1WriteStr("LED1 OFF\n");
    13.                 }
    14.                 else
    15.                 {
    16.                     fg_LED1 = LED_ON;
    17.                     EVB_LEDControl(LED1, LED_ON);
    18.                     EVB_Uart1WriteStr("LED1 ON\n");
    19.                 }
    20.                 break;
    21.             case '2':
    22.                 if(fg_LED2 == LED_ON)
    23.                 {
    24.                     fg_LED2 = LED_OFF;
    25.                     EVB_LEDControl(LED2, LED_OFF);
    26.                     EVB_Uart1WriteStr("LED2 OFF\n");
    27.                 }
    28.                 else
    29.                 {
    30.                     fg_LED2 = LED_ON;
    31.                     EVB_LEDControl(LED2, LED_ON);
    32.                     EVB_Uart1WriteStr("LED2 ON\n");
    33.                 }
    34.                 break;
    35.             case '?':
    36.                 if(fg_LED1 == LED_ON)
    37.                     EVB_Uart1WriteStr("LED1:ON , ");
    38.                 else
    39.                     EVB_Uart1WriteStr("LED1:OFF , ");
    40.                 if(fg_LED2 == LED_ON)
    41.                     EVB_Uart1WriteStr("LED2:ON\n");
    42.                 else
    43.                     EVB_Uart1WriteStr("LED2:OFF\n");
    44.                 break;
    45.             default:
    46.                 EVB_Uart1WriteStr("???\n");
    47.                 break;
    48.         }
    49.     }
    50. }
    复制代码
    程序运行后,输入 ? 查询 LED 状态:
    P01.JPG

    开发板 LED 状态
    DSC01313.JPG

    输入 1
    P02.JPG

    开发板 LED 状态
    DSC01315.JPG

    输入 1 2
    P03.JPG

    开发板 LED 状态
    DSC01321.JPG

    输入 1 ?
    P04.JPG

    开发板 LED 状态
    DSC01323.JPG

    输入其他字元
    P05.JPG



    程序代码:
    uart_test.rar (703 Bytes, 下载次数: 55)

    评分

    参与人数 1与非币 +5 收起 理由
    loveeeboard + 5 三周年铜板双倍!

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-11-3 18:38:30 | 显示全部楼层
    骗子,大家别下
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-22 00:48 , Processed in 0.129023 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.