LED灯控制——串口基础通信实验

该博客介绍了一个基于野火MINI例程修改的串口控制LED程序,实现了串口收发、LED亮灭控制及数据帧解析。程序能过滤无效指令,解析不定长数据帧并控制相应LED状态,代码可成功编译下载运行。提供了程序源码下载,要求注明来源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提概要

  • 程序借鉴野火MINI例程进行修改得来,并反复测试可以达到实验要求。所有代码仅为例程与个人编写组成,取走请注明来源

程序代码已实现以下几点

  • 实现串口收发。

  • 实现串口控制LED亮灭

  • 能成功编译例程代码,并下载运行

  • 串口不定长数据帧格式形如:“LED1:1 LEd6:1 led3:0 LeD9:1 led193:1#”。能正确解析出被控灯的个数,匹配个数,以LED1:1为例,LED后面的数字是控制第1个灯,冒号后面的值1表示点亮,0表示熄灭。其中led不区分大小写

  • “LED1:1 LEd6:1 key3:0 LeD9:1 led193:1#”。能过滤掉key

下面是示例图:

程序源码获取:

点击此处下载,下载密码为:0328

 压缩密码私聊或联系分享给你的人。

编写不易,转发或利用请署名备注来源,也请勿喷,谢谢!

PS:本程序经过研究可以通过基本的串口实现。具体为,在主程序中定义数组,通过getchar()将输入数据传入数组

int main()
{
    uint8_t tab[256]={0}        //初始化数组为零
    uint8_t i;
    for(i=0;i<256;i++)
    {
        tab[i]=getchar();//获得输入数据
    }
    for(i=0;i<256;i++)
    {
        if(tab[i]==' ')  //单引号内为需要条件判断的东西,在本实验中可填入D or d
        {
                            //再次填需要执行的即可
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值