scottly 发表于 2014-9-29 16:17

关于28335的SCI模块及自定义串口通讯协议的问题

本人新手,现在在做一个项目,需要通过串口进行数据传输,而且串口数据的协议需要自己定;
例如:
   数据格式是: 需要一个命令前缀0x21,然后在是控制命令——>数据的长度——>数据主体

请问该怎么去实现?

使用的是28335的SCI串口模块,现有的例程里都是主机发送一段字符串给28335,28335将其返回来;
像上面那个功能怎么实现,比如还可以根据不同的控制命令,控制28335执行相关的操作,请指教!
@zhangmangui

稀饭先生 发表于 2014-9-29 16:58

可以在串口中断里面实现啊。

scottly 发表于 2014-9-29 17:39

稀饭先生 发表于 2014-9-29 16:58 static/image/common/back.gif
可以在串口中断里面实现啊。

额,什么意思?我强调的是数据的协议格式。。

wangch_sh 发表于 2014-9-29 20:06

发送就是了,先发0x21,再发控制命令,再发数据长度,再发数据主体。

zhangmangui 发表于 2014-9-29 21:15

你的数据格式只是叫收发双方知道就行了啊
发的一方按照数据格式发送收的一方按数据格式校验接收
你可以有一个发送函数函数可以根据传递参数判断是哪个命令   
根据另一个传递参数判断是多长   然后就启动发送
也就是循环一个送入发送寄存器一个字节   一次一次发送
接收端一直循环接收针头如果此针数据中还有02   就要特殊处理了

scottly 发表于 2014-9-29 22:46

wangch_sh 发表于 2014-9-29 20:06 static/image/common/back.gif
发送就是了,先发0x21,再发控制命令,再发数据长度,再发数据主体。

先发0x21,再发控制命令,再发数据长度,再发数据主体;
是不是上面每一个都是一帧数据?连续发送4帧数据?
(一帧数据有数据位 校验位 停止位等)
那接收端如何知道有4帧数据需要接受呢?

scottly 发表于 2014-9-29 22:48

zhangmangui 发表于 2014-9-29 21:15 static/image/common/back.gif
你的数据格式只是叫收发双方知道就行了啊
发的一方按照数据格式发送收的一方按数据格式校验接收
你可 ...

接收端如何知道是帧头啊?

zhangmangui 发表于 2014-9-29 23:32

scottly 发表于 2014-9-29 22:48 static/image/common/back.gif
接收端如何知道是帧头啊?

给你个例子    参考一下他们协议的设计

wangch_sh 发表于 2014-9-30 08:14

0x21不就是帧头吗

scottly 发表于 2014-9-30 08:39

zhangmangui 发表于 2014-9-29 23:32 static/image/common/back.gif
给你个例子    参考一下他们协议的设计

谢谢了。。。。

scottly 发表于 2014-9-30 08:40

wangch_sh 发表于 2014-9-30 08:14 static/image/common/back.gif
0x21不就是帧头吗

你的意思是把实际有用的信息都放在数据部分是吧?数据部分一般不是1-8位么?数据部分超过8位怎么办?

wangch_sh 发表于 2014-9-30 09:21

超过是几个字节就用几个字节,否则你数据长度有什么用呀

NWPU_CHEN 发表于 2014-9-30 09:32

露珠好好研究某一个通信协议就明白了,现在你的思路很混乱,一个协议发送只管发送,接收部分根据协议进行判断解析校验,简单模式帧头+数据+校验。发一个存一个,一帧发完校验处理,没有啥疑问,你数据位可以8位的发,多个数据可以连续发,这点没有疑问,还有你说的不知道帧头,一包数据的帧头地址是确定的,一帧数据的位数也能知道,这一判断就出来了,根本不必纠结,好好研究研究一个协议,思考思考

scottly 发表于 2014-9-30 09:48

NWPU_CHEN 发表于 2014-9-30 09:32 static/image/common/back.gif
露珠好好研究某一个通信协议就明白了,现在你的思路很混乱,一个协议发送只管发送,接收部分根据协议进行判 ...

恩恩,谢谢你的回复,明白了,一帧数据就是帧头,数据,校验,帧尾;其中数据部分最多是8位;
就是说一帧是1+8+1类似的格式,如果我有四个字节,就需要连续发4次(1+8+1)个帧就行了。

yklstudent 发表于 2014-9-30 13:57

呵呵 楼主就是个逗比
不知道楼主怎么明白的,哈哈
楼主别生气啊

scottly 发表于 2014-9-30 16:07

yklstudent 发表于 2014-9-30 13:57 static/image/common/back.gif
呵呵 楼主就是个逗比
不知道楼主怎么明白的,哈哈
楼主别生气啊

:curse:

yklstudent 发表于 2014-10-1 15:23

scottly 发表于 2014-9-30 16:07 static/image/common/back.gif


:curse::lol
页: [1]
查看完整版本: 关于28335的SCI模块及自定义串口通讯协议的问题