急!为什么485串口接收不到数据? 点击:1250 | 回复:3



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-10-14 01:05:00
楼主
我的系统是PC104支持485接口,在DOS下用Turbo C编程,采用232串口时可以接收数据,为什么采用两线制的485接收不到数据?请高手指点。
接收部分程序如下:
while(1){
cc=inportb(0x3FD)&0x01;
if(cc!=0){
cm=inportb(0x3F8);
break;
}
}



三好男人

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2006年10月20日
发表于:2006-10-23 12:03:00
1楼
请查看一下你的串口的配置,16550的485 auto的寄存器最好设上。这样在发送结束后,485自动切换回接受状态。
另外这样的代码最好采用中断方式,你可以找本x86的书。

迷茫的共空

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 9回
  • 年度积分:0
  • 历史总积分:41
  • 注册:2006年10月23日
发表于:2006-10-26 14:56:00
2楼
用调试助手测量一下硬件?

迷茫的共空

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 9回
  • 年度积分:0
  • 历史总积分:41
  • 注册:2006年10月23日
发表于:2006-10-26 15:02:00
3楼
用中断采样,加一个采样缓冲区。
采样放缓冲区,再从缓冲区读数据
这样一来结论清晰明确

热门招聘
相关主题

官方公众号

智造工程师