当前位置: 代码迷 >> 单片机 >> rs232 串口读写数据 的有关问题
  详细解决方案

rs232 串口读写数据 的有关问题

热度:205   发布时间:2016-04-28 16:02:35.0
rs232 串口读写数据 的问题
我对下位机是一点也不懂啊,现在和一个同事合作一个最简单的串口通信程序。
上位机发送一个指令(假设是'a'这个byte)下位机回复一个字节表示温度。

那么 WriteFile 和ReadFile的时候是不是和TCP类似,buffer里面只有用户数据?

------解决方案--------------------
SBUF='a';
------解决方案--------------------
那你得问下位机
------解决方案--------------------
问你同事发的是什么咯。。。报文头只是你们商定的协议加或者不加
------解决方案--------------------
一个说英语,一个说中文,很难沟通

协议就是大家说一种语言
------解决方案--------------------
一发一收而已。
------解决方案--------------------
直接读取bufer就可以啊,把想要的读取的数据放在bufer里
------解决方案--------------------
我写一个简单的收发
void send_8bit(uchar dat)
{
bit es;
es = ES;
ES = 0; //这是防止在发送中被串行中断打断
SBUF = dat;
while(TI == 0);
TI = 0; //当数据没有发送完的时候,TI一直是0,发送完后会变成1 
}//这样一个8位的数据就发送完了额
void send_str(uchar *p) //发送一个字符串
{
while(*p != '\0')
send_8bit(*p++);
}//这样一个字符串就发完啦额

void isr_es() interrupt 4 // 这是一个串口中断服务函数,用来接收
{
uchar sbuf;
if(RI == 1) //有数据进来
{
RI = 0;
sbuf = SBUF; //这里的sbuf 你可以设置成一个全局变量,这样你就可以操作这个通过串口送进来的数据了
}
}



------解决方案--------------------
只要弄懂了双方设定的协议就OK了