rs232 串口读写数据 的问题

legionalways 2012-03-28 10:46:39
我对下位机是一点也不懂啊,现在和一个同事合作一个最简单的串口通信程序。
上位机发送一个指令(假设是'a'这个byte)下位机回复一个字节表示温度。

那么 WriteFile 和ReadFile的时候是不是和TCP类似,buffer里面只有用户数据?
...全文
319 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
legionalways 2012-04-02
  • 打赏
  • 举报
回复
结了
xqqsunpeng 2012-04-01
  • 打赏
  • 举报
回复
只要弄懂了双方设定的协议就OK了
legionalways 2012-04-01
  • 打赏
  • 举报
回复
明天结贴
legionalways 2012-04-01
  • 打赏
  • 举报
回复
我原以为很复杂的,被唬人 的bauding rate 奇偶校验,吓住了,
其实I/O和TCP一样,buffer里面都是用户的数据,没有什么底层的数据。。。

依然感谢各位。。。
东旭 2012-04-01
  • 打赏
  • 举报
回复
我写一个简单的收发
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 你可以设置成一个全局变量,这样你就可以操作这个通过串口送进来的数据了
}
}


afei8856 2012-04-01
  • 打赏
  • 举报
回复
直接读取bufer就可以啊,把想要的读取的数据放在bufer里
用户 昵称 2012-04-01
  • 打赏
  • 举报
回复
一发一收而已。
AnYidan 2012-03-30
  • 打赏
  • 举报
回复
一个说英语,一个说中文,很难沟通

协议就是大家说一种语言
yinrongg 2012-03-30
  • 打赏
  • 举报
回复
问你同事发的是什么咯。。。报文头只是你们商定的协议加或者不加
falloutmx 2012-03-28
  • 打赏
  • 举报
回复
那你得问下位机
legionalways 2012-03-28
  • 打赏
  • 举报
回复
比如就程序而言,我希望ReadFile里面的pointer指向温度的那个byte,
实际上会不会有一堆数据,什么报文头,数据段,报文尾,然后我还要再解析?
net_friends 2012-03-28
  • 打赏
  • 举报
回复
SBUF='a';

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧