STM32F103 串口UART1接收电脑不定长字符指令并实现命令和数据解析

电脑端通过串口发送特定格式数据帧,包含指令和数据。

     数据格式:{ {指令1:数据1;指令2:数据2;......}}

STM32f103通过UART1与电脑通讯,接收数据后进行解析,并返回解析结果进行测试。

1、定义 int extractCommands()解析函数

// 结构体用于存储指令和数据
    struct CommandData {
        char command[MAX_CMD_LENGTH];//指令
        unsigned long data;          //数据
    }

// 提取指令和数据的函数
//数据包格式:{
  {xx:xx;xx:xx;}}//以{
  {}}作为起止,以“;”分组,以“:”区分该组指令和数据
//入口参数:
//    char *input --接收到的字符串数据帧
//    struct CommandData *commands--返回CommandData 结构体数据,
int extractCommands(char *input, struct CommandData *commands) {
    char *token;
    int count = 0;
    const char *start = strstr(input, "{
  {");
    const char *end = strstr(input, "}}");
    if (!start || !end || end <= start)
        return -1; // 没有找到合法的开始和结束标志

    // 去掉前面�????"{
  {"和后面的"}}"

    start &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark星源科创

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值