OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3400|回复: 1

STM32F407与ZLG7290芯片采用IIC通信协议进行通信的问题

[复制链接]

8

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2019-2-1
在线时间
64 小时
发表于 2019-3-17 22:23:05 | 显示全部楼层 |阅读模式
5金钱
探索版与ZLG7290采用IIC协议进行通信,以控制矩阵键盘,在代码中,读取键值寄存器中的值时不太理解0x71指令是什么意思.另外,ZLG7290的数据手册上说它的从机地址是0x70.部分代码如下。望大神指点!


[mw_shl_code=c,true]u8 key_read(void)//读取键值函数
{
        u8 num=10;
        IIC_Start();
        //delay_us(30);
        IIC_Send_Byte(0x70);//从机寻址
        //delay_us(30);
        d=IIC_Wait_Ack();
        IIC_Send_Byte(0x01);//操作键值寄存器
        e=IIC_Wait_Ack();       
        IIC_Start();
        IIC_Send_Byte(0x71);//????????问题在这里
        f=IIC_Wait_Ack();

        //delay_us(30);
        num=IIC_Read_Byte(0);//不向zlg7290发送应答,读取键值寄存器的值
        //delay_us(30);
        IIC_Stop();
       
        return num;
}[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

搞定了,应该是这样的! u8 key_read(void)//读取键值函数 { u8 num=10; IIC_Start(); //delay_us(30); IIC_Send_Byte(0x70);//从机寻址 //delay_us(30); d=IIC_Wait_Ack(); IIC_Send_Byte(0x01);//操作键值寄存器 此处相当于先锁定了目标寄存器,因为一旦进入读模式就没有办法再给从机发送寄存器的地址了 e=IIC_Wait_Ack(); IIC_Start();//重新来一次起始信号以便之后进行读操作 IIC_Send_Byte(0x71);//7 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
348
金钱
348
注册时间
2019-2-1
在线时间
64 小时
 楼主| 发表于 2019-3-17 22:23:06 | 显示全部楼层
搞定了,应该是这样的!
u8 key_read(void)//读取键值函数
{
        u8 num=10;
        IIC_Start();
        //delay_us(30);
        IIC_Send_Byte(0x70);//从机寻址
        //delay_us(30);
        d=IIC_Wait_Ack();
        IIC_Send_Byte(0x01);//操作键值寄存器  此处相当于先锁定了目标寄存器,因为一旦进入读模式就没有办法再给从机发送寄存器的地址了
        e=IIC_Wait_Ack();       
        IIC_Start();//重新来一次起始信号以便之后进行读操作
        IIC_Send_Byte(0x71);//7位从机地址,最后一位为1表明要读,若为0则是写。
        f=IIC_Wait_Ack();

        //delay_us(30);
        num=IIC_Read_Byte(0);//不向zlg7290发送应答,读取键值寄存器的值
        //delay_us(30);
        IIC_Stop();
       
        return num;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 11:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表