OpenEdv-开源电子网

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

如何用 在探索者上 用iIC 读取 TFmini Plus 的数据?

[复制链接]

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2019-9-25
在线时间
32 小时
发表于 2019-12-12 15:53:36 | 显示全部楼层 |阅读模式
20金钱
如何用 在探索者上 用IIC 读取 TFmini Plus 的数据。弄了好久还是不能成功 ,目前他是在IIC模式下,好像发送的指令让他改回UART模式都不能成功。 那位大神帮帮忙呐,万分感谢!

发送命令函数

发送命令函数

SJ-PM-TFmini Plus A04 说明书.pdf

1.27 MB, 下载次数: 11

最佳答案

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

我终于读出来了 按它说明书上的时序根本读不出来 我用IIC上位机却能读出来 于是 我试着按24C02 的时序读了一下 终于读出来了 不过结果读出来的数据向前偏了一位 第1 2 位才是距离的 底 高 位了 这个我也不懂为啥。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2019-9-25
在线时间
32 小时
 楼主| 发表于 2019-12-12 15:53:37 | 显示全部楼层
我终于读出来了 按它说明书上的时序根本读不出来  我用IIC上位机却能读出来 于是 我试着按24C02 的时序读了一下 终于读出来了    不过结果读出来的数据向前偏了一位  第1 2  位才是距离的 底 高 位了 这个我也不懂为啥。

IIC读取TFminiPlus距离12-14.zip

4.58 MB, 下载次数: 20

回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3623
金钱
3623
注册时间
2019-8-14
在线时间
1054 小时
发表于 2019-12-12 17:55:57 | 显示全部楼层
帮顶  
回复

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2019-9-25
在线时间
32 小时
 楼主| 发表于 2019-12-14 17:28:10 | 显示全部楼层
里面也写了 IIC转回uart 模式的函数 调用一下就行了  
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-1-31
在线时间
1 小时
发表于 2020-2-1 13:32:47 | 显示全部楼层
不好意思,我能问下0X20是啥吗??
回复

使用道具 举报

7

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2019-7-18
在线时间
50 小时
发表于 2020-4-22 15:37:46 | 显示全部楼层
本帖最后由 碎步湖 于 2020-4-22 18:32 编辑
孟庆宇 发表于 2019-12-12 15:53
我终于读出来了 按它说明书上的时序根本读不出来  我用IIC上位机却能读出来 于是 我试着按24C02 的时序读了 ...

       万分感谢,我按照手册调了一天都不得,一跑你的例程就成功了。       先回复一下楼上0x20的由来。手册说模块默认的7bit地址是0x10,也就是0010000,读写分别代表0/1,合并后应该0010000<<1|0x00为写,即0x20,0010000<<1|0x01为读,即0x21。
       另外我也知道为什么你这边数据向前偏了一位,原因如下:
在手册中,时序是ADDR/W和ADDR/R,因为是7bit的地址,所以读写分别会在后面添加,也就是变成了0x20|0x00为写,0x20|0x01为读,对应0x20和0x21,接下来就是可以直接发送指令进行读写操作了。在你原来程序中,写函数是
        IIC_Start();  
        IIC_Send_Byte(0X20);        
        IIC_Wait_Ack();
        IIC_Send_Byte(0X00);        
        IIC_Wait_Ack();
经验证,后面的
        IIC_Send_Byte(0X00);        
        IIC_Wait_Ack();
是可以注释掉的,同理,在读函数中
        IIC_Start();  
        IIC_Send_Byte(0X21);        
        IIC_Wait_Ack();
        IIC_Send_Byte(0X00);        
        IIC_Wait_Ack();
        
        IIC_Start();  
        IIC_Send_Byte(0X21);        
        IIC_Wait_Ack();  
前面的5行代码也可以注释掉,在都使用时意味着读操作多占用了一个时序,导致数据往后移了一个字节,而校验位也被省略掉。上述测试验证无异常,回复不方便贴图就不放图片了。

回复

使用道具 举报

7

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2019-7-18
在线时间
50 小时
发表于 2020-4-22 15:39:36 | 显示全部楼层
更改后的程序如下

激光雷达-TFmini Plus.zip

4.77 MB, 下载次数: 30

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-2 09:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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