feiqi1 发表于 2022-9-18 17:08

单片机怎么处理串口接收到的命令

单片机串口接收到数据h0a0,h代表high, 0a0对应16进制的160, 此时 控制单片机某管脚高电平16s;
大约0.1秒后,单片机收到数据l078,l代表low,078对应16进制的120, 此时 控制单片机某管脚高电平16s;
.....
单片机收到一组不定长度的命令,例如h0a0l078h050l029h050l020 单片机控制执行一系列的通断。
求助 单片机怎么处理串口接收到的命令

litengg 发表于 2022-9-18 17:25

这种情况需要编制一个完整的通讯协议。

qiangweii 发表于 2022-9-18 17:34

命令所对应的执行动作都是按秒计时的,那么在执行期间,又收到相反的动作命令又该怎么处理。

shashaa 发表于 2022-9-18 17:42

这个相对简单一些,只要注意比较字符串即可.

xia00 发表于 2022-9-18 17:42

怎么处理串口接收到的命令是业务逻辑问题,得根据命令的含义做处理.

CallReceiver 发表于 2022-9-18 17:47

这个是靠通讯协议来处理的,要根据实际需求编制通讯协议。

boy1990 发表于 2022-9-18 17:48

直接使用串口中断处理。

boy1990 发表于 2022-9-18 17:52

必须约定好通信格式吧。

sourceInsight 发表于 2022-9-18 17:52

这个就是一个编码和译码的过程。

handleMessage 发表于 2022-9-18 17:58

16进制的数据好解析的呀。

zhouhuanの 发表于 2022-9-18 17:59

楼主最好通过协议进行访问。

bbapple 发表于 2022-9-18 18:04

一般使用0xff或者0x55通信。

wanglaojii 发表于 2022-9-18 18:04

你怎么对应写入的数据,怎么反过来读取数据。

laozhongyi 发表于 2022-9-18 18:17

在单片机进行解码就行了吧。

Edisons 发表于 2022-9-18 18:17

每一位代表什么数据的就是固定的通信格式

_gege 发表于 2022-9-18 18:22

如果不固定,解码的协议就不好编写的。

Mozarts 发表于 2022-9-18 18:23

长度不固定还不好接收呢。{:smile:}

Listate 发表于 2022-9-18 18:27

直接通信控制IO接受串口指令。

春日负喧 发表于 2022-10-13 16:25

正常来说,可以在中断把数据都收到,然后在子函数中处理数据

故意相遇 发表于 2022-10-13 16:47

这个不像是ST的串口程序嘞
页: [1] 2 3 4 5 6
查看完整版本: 单片机怎么处理串口接收到的命令