首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

向版主请教56f8013

向版主请教56f8013

我在用code warrior 的processor expert 开发IIC通讯程序时,生成的读写程序每次都写两个字节,包括器件地址,IIC通讯要求,是写器件地址后写存储地址再写要存储的数据,如果两次调用写子程序,器件地址写两次,无法正常写进去,急呀!请指点
不知道你的写子程序每次只能传送一个数据字节,还是能传送多个字节。不管怎样,都需要从机的配合,根据发送字节数产生应答信号,这样才能正确地通讯。
海纳百川  有容乃大
我用processor expert生成的子程序byte F24C04_SendChar(byte Chr)每次能传送两个字节,我用示波器看SDA和SCL的波形,每执行一次F24C04_SendChar(byte Chr)子程序,可以看到18各脉冲,两个字节,而且每次第一个字节都是器件地址0xA0,第二个字节是Chr。这样我第一次Chr是存储地址,第二次Chr是数据,结果可以看到发送了四个字节即: 0xA0,Chr(第一个), 0xA0,Chr(第二个),这样由于每次F24C04_SendChar(byte Chr)子程序,都先发送0xA0,数据无法正确写入。
你的IIC从机是什么,需要怎样的通讯格式?
海纳百川  有容乃大
从机是24C02
你的PE不能生成SendBlock函数吗?那可能是licnese的问题。也许你需要自己在SendChar函数的基础上修改。
海纳百川  有容乃大
可以生成,我的英文水平不高在byte F24C04_SendBlock(void* Ptr,word Siz,word *Snt)中void* Ptr,word Siz,word *Snt三个参数各代表什么,如何定义?谢谢
*Ptr是指向要发送的数据块起始地址的指针;Siz是数据块的大小;*Snt是实际发送的字节数的返回地址。
海纳百川  有容乃大

如果我要将unsigned char data[2][2]={250,100,5,7};这个数组存到24C02中02开始的地址中,Siz是4,*Ptr是&data[0][0],*Snt是02吗?对*Snt我有点不太理解

如果我执行下面的程序会是什么结果

unsigned char data[2][2]={250,100,5,7};

ward *a=2;

ic_SendBlock(&data[0][0],4,a) 

[此贴子已经被作者于2008-3-12 21:12:54编辑过]

你可以先运行一下试试看。
海纳百川  有容乃大
[img][/img]学习中
[img][/img]在学习中
返回列表