综合技术交流
直播中

Keshawn

6年用户 12经验值
擅长:控制/MCU
私信 关注
[问答]

上位机如何实现发送参数给单片机,单片机保存接收的参数重复运行指定的功能

简单说明一下发这个贴子/问答的原因,很早以前就想实现这个功能了,但是一直没有找到好的方法,也没有什么思路,所以发帖问一问大佬们,希望大佬们指点一二。
需求/功能 描述:

  1. 上位机部分主要是设定一些参数,类似于设定单片机运行指定功能时所需要的参数:
    举例:名称,功能,上限,下限,参数一,参数二,...,延时。一行代表一个功能。
    上位机设定好参数通过串口下发给单片机。
  2. 单片机接收到数据后保存这些参数,并且能够重复以接收到的参数执行指定的功能,知道上位机发送新的参数进来,如果一直不更新且断开上位机连接,那么单片 机就一直以上一次接收的参数运行指定的功能。
    3.假设需要按顺序运行多个功能那么上位机就设定多行参数然后发送给单片机,格式如下:
    名称A,功能A,上限,下限,参数一,参数二,...,延时。
    名称B,功能B,上限,下限,参数一,参数二,...,延时。
    名称...,功能...,上限,下限,参数一,参数二,...,延时。
    名称N,功能N,上限,下限,参数一,参数二,...,延时。

请教各位大佬们有什么方法可以实现以上这些功能?

奖励5积分

回帖(1)

杨帆

2024-12-4 18:12:47
要实现上位机发送参数给单片机,单片机保存接收的参数并重复运行指定功能的功能,可以按照以下步骤进行:

1. 确定通信协议:首先需要确定上位机和单片机之间的通信协议,例如使用串口通信。串口通信是一种常见的通信方式,可以实现上位机和单片机之间的数据传输。

2. 设计参数格式:上位机需要将参数以一定的格式发送给单片机。可以采用文本格式,例如CSV(逗号分隔值)格式,每个参数之间用逗号分隔,每行代表一个功能。例如:
```
名称A,功能A,上限A,下限A,参数一A,参数二A,...,延时A
名称B,功能B,上限B,下限B,参数一B,参数二B,...,延时B
...
名称N,功能N,上限N,下限N,参数一N,参数二N,...,延时N
```

3. 上位机发送参数:上位机根据用户设定的参数,将参数按照设计的格式发送给单片机。可以使用串口通信库(例如Python中的pyserial库)来实现数据的发送。

4. 单片机接收参数:单片机需要有一个串口接收程序,用于接收上位机发送的参数。可以使用单片机的串口中断或者轮询方式来实现参数的接收。

5. 单片机解析参数:单片机接收到参数后,需要解析参数并保存到相应的变量中。可以使用字符串处理函数(例如C语言中的strtok函数)来解析CSV格式的参数。

6. 单片机执行功能:单片机根据接收到的参数,执行相应的功能。可以使用一个循环来实现多个功能的顺序执行。

7. 单片机更新参数:当上位机发送新的参数时,单片机需要更新保存的参数,并重新执行功能。可以使用一个标志位来检测是否接收到新的参数。

8. 单片机断开连接:如果上位机断开连接,单片机可以继续以上一次接收的参数运行指定的功能。

通过以上步骤,可以实现上位机发送参数给单片机,单片机保存接收的参数并重复运行指定功能的功能。
1 举报

更多回帖

发帖
×
20
完善资料,
赚取积分