请教

[复制链接]
2362|5
 楼主| jlgcumt 发表于 2009-2-27 17:34 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;现在有两个51单片,其中一个为主,一个为从,他们分别外接一个6116的数据存储器,现假设主单片机的外部存储器里已有2K的数据,要求通过串行口把这些数据存到从单片机的6116里,要用c语言实现,并写出通信协议,<br />&nbsp;&nbsp;有没有类似的程序提供一个?<br />&nbsp;&nbsp;我现在有几个疑问,<br />&nbsp;&nbsp;怎么访问外部存储器6116,用<br />&nbsp;&nbsp;long&nbsp;xdata&nbsp;*p=0x0000<br />&nbsp;&nbsp;&nbsp;p++<br />&nbsp;&nbsp;&nbsp;&nbsp;吗<br />&nbsp;&nbsp;发送完怎么判断发的数据有没有错误?&nbsp;<br />&nbsp;&nbsp;或者说怎么求校验和<br />(直接求累加和是不是有问题,太大了?)<br />&nbsp;发一个校验一个是不是太慢?<br /><br /><br /><br />&nbsp;假如上面两个51单片机每个再接一个128M&nbsp;的flash,里面有大概100M左右的数据,主单片机每次先传2k给自己6116,等发送完之后,再传下一个2K数据,问一下怎么判断数据传算完了呢?<br /><br />下面的程序怎么利用上面的程序,就是说两个程序怎么连起来?<br /><br />先在这里谢谢各位了!<br /><br />&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;
阿南 发表于 2009-2-27 20:45 | 显示全部楼层

类似的要google下,

楼主先实现存储器的读写操作<br />再做单片机的通信<br />最近整合一起就可以了
dalujia 发表于 2009-2-28 10:29 | 显示全部楼层

re

1.直接累加求校验和不会太大的,因为你的累加结果只取最低字节的值,就占一位。一般校验就是这样,比如说一堆数据,11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79&nbsp;11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79&nbsp;11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79&nbsp;11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79&nbsp;11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79&nbsp;11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79&nbsp;11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79&nbsp;11&nbsp;45&nbsp;88&nbsp;45&nbsp;48&nbsp;79。他们的校验和为01.把他们相加看是不是为01,就可以了。可能会慢的把,不过也不会超过1秒的。usb传输不也需要很长时间吗。<br />2.传送完了,你既然需要两个单片机。从单片机接收完了,应该会给主单片机一个接收完的响应,你根据这个判断。这是串口之间的通信。<br />常上qq啊。
dalujia 发表于 2009-2-28 10:40 | 显示全部楼层

re

51串口的接收和发送都有已经移植好的函数,你那里是不是已经有了,有的话可能好办一些。接收一个字节就加1,加到2*1024以后,清0,给主机发送2k接收完毕信号。没有的话就费点心,周立功的应该有。<br />www.zlgmuc.com。<br />www.csdn.net<br />www.pudn.com<br />后两个需要账号,需要的话qq发给你。上qq.
 楼主| jlgcumt 发表于 2009-2-28 11:14 | 显示全部楼层

请教

最后要判断2k的数据是不是发送有误,能不能提供一个方法<br />发一个校验一个是不是太慢?
 楼主| jlgcumt 发表于 2009-2-28 11:18 | 显示全部楼层

go on

我这几天才学单片c<br />用累加和的话<br />因为SBUF只用传8位,是不是不行呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

733

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部