请教,怎样解决这个问题。 点击:1055 | 回复:1



langrenf

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2001年9月12日
发表于:2002-10-24 17:54:00
楼主
我现在编写一个双绞线模块和51单片机之间的串口通信程序。双绞线收发模块里的Neuron 芯片使用10MHz晶振,单片机用11.0592得晶振。波特率是4800bps。采用Neuron芯片向单片机发送命令,然后等待应答的方式。按照协议,单片机返回的最大的数据包有126个字节。 Neuron C程序语句如下: { io_out(s_out,t_mcu_buf,t_mcu_len); watchdog_update(); // 发送完后,等着接收数据 r_num=io_in(s_in,r_mcu_buf,126); watchdog_update(); } 另外定义了三个网络变量,nv_in是输入网络变量,可以在lonmaker browser里输入下发给单片机的命令;nv_out是输出网络变量,是双绞线模块返回给计算机的数据;nv_r_mcu_buf是输出网络变量,用以显示收到的单片机返回的数据包里的前31个字节。 程序编译下载到控制模块里运行,通过lonmaker browser来输入命令,监测网络变量。当单片机返回的数据包在30个字节时,没有什么异常。但是如果单片机返回的数据包是128个字节,nv_in输入命令后,browser上各个网络变量的值在一瞬间显示为“?”,过一下又显示为正常的值,查看nv_r_mcu_buf可以看出接收到的数据包正确,通讯成功。为什么在那一时间网络变量会显示为问号“?”,如果这时用上位软件通过LNS来访问这些网络变量,就会返回“network error”的错误。 请教这是什么原因,有什么改进的方法。谢谢!



广东—雄

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 98回
  • 年度积分:0
  • 历史总积分:155
  • 注册:2002年3月11日
发表于:2002-10-24 17:54:00
1楼
会不会是接点复位了?

热门招聘
相关主题

官方公众号

智造工程师