找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3174|回复: 3
收起左侧

单片机串口数据解析方法

[复制链接]
ID:211052 发表于 2020-4-22 22:17 | 显示全部楼层 |阅读模式
接收字母开头(不分大小写)不定长度的字符串,然后解析做出反馈
字符串基本规格类型主要有3种:
单条命令格式 :ansq;                        ansq?
                       Ansq+参数
结束符号: \r\n

最终串口接收字符串是: 命令+结束符  ======》 CMD(X,Y,'ABCD字符不定长',W); \r\




在程序中怎么处理这些指令容易让人看懂,容易修改、维护?
回复

使用道具 举报

ID:211052 发表于 2020-4-23 22:30 | 显示全部楼层
是我没说清,串口接收的指令以字母开头(不分大小写),指令长度不定,结束符号是 \r\n。单片机解析指令后做出反馈。
设置类的指令可以跟?进行查询。比如LIMIT指令:接收的是LIMIT+参数,或LIMIT?两条。

指令较多,在程序中怎么处理这些指令容易让人看懂,容易修改、维护?
指令示例:

3字节指令
void IDN()  //返回版本号等
{
          const char *ver="60V/2A,Ver1.0.0,SN2020-5-18";

}
4字节指令
void ARST()//功能:故障报警继电器复位
{
       
}
5字节指令
void FAULT()//查询运行故障状态
{
       
}
5或6字节
void LIMIT()//设置输出控制设置参数限制值
{
       
}
void OUTP(char *rev)//设置/查询电源启动/停止
{
   if(rev[4]==0)
                 
         else if(rev[4]==1)
                  //reboot(b_shutdown);
         else if(rev[4]=='?')
                  
}
8字节指令
void SHUTDOWN()
{
       
}
void STATE()
{
       
}



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表