打印

请教

[复制链接]
1679|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlgcumt|  楼主 | 2009-2-27 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  现在有两个51单片,其中一个为主,一个为从,他们分别外接一个6116的数据存储器,现假设主单片机的外部存储器里已有2K的数据,要求通过串行口把这些数据存到从单片机的6116里,要用c语言实现,并写出通信协议,
  有没有类似的程序提供一个?
  我现在有几个疑问,
  怎么访问外部存储器6116,用
  long xdata *p=0x0000
   p++
    吗
  发送完怎么判断发的数据有没有错误? 
  或者说怎么求校验和
(直接求累加和是不是有问题,太大了?)
 发一个校验一个是不是太慢?



 假如上面两个51单片机每个再接一个128M 的flash,里面有大概100M左右的数据,主单片机每次先传2k给自己6116,等发送完之后,再传下一个2K数据,问一下怎么判断数据传算完了呢?

下面的程序怎么利用上面的程序,就是说两个程序怎么连起来?

先在这里谢谢各位了!

   

   
   

相关帖子

沙发
阿南| | 2009-2-27 20:45 | 只看该作者

类似的要google下,

楼主先实现存储器的读写操作
再做单片机的通信
最近整合一起就可以了

使用特权

评论回复
板凳
dalujia| | 2009-2-28 10:29 | 只看该作者

re

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

使用特权

评论回复
地板
dalujia| | 2009-2-28 10:40 | 只看该作者

re

51串口的接收和发送都有已经移植好的函数,你那里是不是已经有了,有的话可能好办一些。接收一个字节就加1,加到2*1024以后,清0,给主机发送2k接收完毕信号。没有的话就费点心,周立功的应该有。
www.zlgmuc.com。
www.csdn.net
www.pudn.com
后两个需要账号,需要的话qq发给你。上qq.

使用特权

评论回复
5
jlgcumt|  楼主 | 2009-2-28 11:14 | 只看该作者

请教

最后要判断2k的数据是不是发送有误,能不能提供一个方法
发一个校验一个是不是太慢?

使用特权

评论回复
6
jlgcumt|  楼主 | 2009-2-28 11:18 | 只看该作者

go on

我这几天才学单片c
用累加和的话
因为SBUF只用传8位,是不是不行呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

733

帖子

4

粉丝