当往 SBUF写入1个八位数据时,启动发送操作,数据从TXD端实现异步发送。发送完一帧数据后自动置TI=1,请求中断。要继续发送时,TI清零便可。
你可以自己写一个连续发送的函数:只要发送前9个数据后,TI清零就成。
或者写一个一次之功能发送一个字节的函数,然后利用循环调用前面的函数,实现10个数据的发送。。。
大多数情况都用后者吧。。。
串口每次只能收、发1个字节,这是肯定的。
当连续发送多字节,接收方是难以判断,那个是第一字节、那个是第二字节...,就无法进行数据处理。
发送多字节时,必须先发送一个标志的字节,如:'$',然后顺序发送数据:第一字节、第二字节...,这时,接收方就可以判断、处理了。
这就是所谓的““协议””。
协议,完全可以自己制定,也可以参考其它的通用型的。
可以参考以前的问答:
http://zhidao.baidu.com/question/348313082.html
一般工业现场是这样的 一条报文中有很多个字节 一般7-20,看情况,
每个字节定义好表达的意思,比如第一个字节可能表示开始符?或者设备地址?第二个字节表示功能码或者什么的,当然你的这个简单 可以直接 初始符+10个字节+校验就ok了。。。
发送报文的时候,字节与字节的区分是停顿发送高低电平的时间,,,,
你可以百度下报文发送的规则,然后看看modbus协议就懂了!~