找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 732|回复: 13
打印 上一主题 下一主题
收起左侧

移植这个程序时,除了修改I2C.h以外,还需要修改什么?

[复制链接]
回帖奖励 800 黑币 回复本帖可获得 40 黑币奖励! 每人限 8 次
跳转到指定楼层
楼主
各位前辈好。
http://www.51hei.com/bbs/dpj-215528-1.html我下载了上面这个程序,运行后,板子温湿度数据一切正常,引脚是PB6, PB7
I2C.h文件:
#define SDA_GPIO    GPIO_Pin_7
#define SCL_GPIO    GPIO_Pin_6


我的新项目新增OLED显示屏占用了引脚PB6, PB7,所以HDC1080的引脚我连接到了STM32的PB10, PB11
所以我修改了I2C.h文件的这里:
#define SDA_GPIO    GPIO_Pin_11
#define SCL_GPIO    GPIO_Pin_10
软件其他地方我都没有修改。
然后板子温湿度数据在串口助手里就异常了,数据总是固定的:125度,100%湿度。


请问是软件调试问题吧?那么还需要修改软件哪里?除了I2C.h   
(这是我第一次移植程序,新手)

这是我下载的别人的程序(HDC1080.rar 未修改过):

这是我修改后的程序(HDC1080rev.rar 我修改过引脚):

这是现在的原理图:
这是现在输出的错误数据:

谢谢!

HDC1080rev.7z

186.84 KB, 下载次数: 0

FW_HDC1080.7z

186.75 KB, 下载次数: 0

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:88256 发表于 2022-8-8 11:24 | 只看该作者
1:确认你更改后才保存并编译了吗?
2:查看其它外围是否使用了STM32的PB10、PB11,只要有1个引脚被占用,HDC1080的数据就无法被正确读取。
回复

使用道具 举报

板凳
ID:883242 发表于 2022-8-8 11:42 | 只看该作者
看了下,是纯软件模拟,没有用到EXTI、IIC等peripherals,应该没问题啊。用逻辑分析仪之类的工具检查下波形吧。
回复

使用道具 举报

地板
ID:401564 发表于 2022-8-8 13:15 | 只看该作者
OLED和HDC1080是可以用一级IIC的,不需要两个时钟数据线的呀
而且,你要用两组的话,你就得两个IIC驱动了
把SCL和SDA同时连接OLED和HDC1080就可以了
我就是这样用的,OLED从机地址是0x78,HDC1080的从机地址是0x80
回复

使用道具 举报

5#
ID:595949 发表于 2022-8-8 14:06 | 只看该作者
Y_G_G 发表于 2022-8-8 13:15
OLED和HDC1080是可以用一级IIC的,不需要两个时钟数据线的呀
而且,你要用两组的话,你就得两个IIC驱动了
把 ...

“OLED从机地址是0x78,HDC1080的从机地址是0x80”

请问具体修改代码哪里呢?我没有设置过从机地址。我怕改错了啊
回复

使用道具 举报

6#
ID:1023753 发表于 2022-8-8 14:06 | 只看该作者
PB10, PB11是不是I2C接口
回复

使用道具 举报

7#
ID:595949 发表于 2022-8-8 14:07 | 只看该作者
Hephaestus 发表于 2022-8-8 11:42
看了下,是纯软件模拟,没有用到EXTI、IIC等peripherals,应该没问题啊。用逻辑分析仪之类的工具检查下波形 ...

我用逻辑分析和示波器都测量过HDC1080的引脚。都是有波形的。
回复

使用道具 举报

8#
ID:595949 发表于 2022-8-8 14:07 | 只看该作者
hhdsdy 发表于 2022-8-8 11:24
1:确认你更改后才保存并编译了吗?
2:查看其它外围是否使用了STM32的PB10、PB11,只要有1个引脚被占用, ...

是的,保存,编译,JTAG下载到STM32。
PB10, PB11连接HDC1080,没有连接其他
回复

使用道具 举报

9#
ID:799053 发表于 2022-8-8 16:21 | 只看该作者
你看下,PB10, PB11 有没有被占用。
回复

使用道具 举报

10#
ID:799053 发表于 2022-8-8 16:30 | 只看该作者
查看PB10、PB11是否被占用,用示波器抓一下SCL波形是否正常,SDA 是否有数据波形。
回复

使用道具 举报

11#
ID:401564 发表于 2022-8-9 00:04 | 只看该作者
bjdhjy888 发表于 2022-8-8 14:06
“OLED从机地址是0x78,HDC1080的从机地址是0x80”

请问具体修改代码哪里呢?我没有设置过从机地址。我 ...

没有说要改呀
只是告诉你而已了
现在都搞不明白你这问题
1,你下载的原本的IIC引脚是PB10, PB11,原来帖子的就是这两个IO
2,你上传的工程引脚是PB6, PB7,那这个是你改过的还是什么?
3,你上传的工程是可以正确显示的温度的还是不能正确显示温度的?
"我的新项目新增OLED显示屏占用了引脚PB6, PB7,所以HDC1080的引脚我连接到了STM32的PB10, PB11"
你这是什么意思?意思是不是说OLED你还要重新写一个IIC,C文件?
你以前的那个可能正确显示的SCL和SDA,就是这两根线,可以同时控制OLED和HDC1080,你明白我意思没有?
不要什么SDA_HDC,SDA_SSD1309了,就要一个就行了SDA
OLED的1脚,HDC1080的1脚,单片机的PB7,这三个接一块,再不明白就没法了
回复

使用道具 举报

12#
ID:595949 发表于 2022-8-9 05:52 | 只看该作者
Y_G_G 发表于 2022-8-9 00:04
没有说要改呀
只是告诉你而已了
现在都搞不明白你这问题

谢谢。我理解。我最早就是把2个设备连接到同一对引脚上。如图:


我的问题是:“OLED从机地址是0x78,HDC1080的从机地址是0x80”这句话,请问代码里怎么修改呢?软件怎么知道“OLED从机地址是0x78,HDC1080的从机地址是0x80”呢?这个我还是不明白。
回复

使用道具 举报

13#
ID:595949 发表于 2022-8-9 05:55 | 只看该作者
zilihangjian 发表于 2022-8-8 16:21
你看下,PB10, PB11 有没有被占用。

我在工程里搜了,没有其他地方有GPIO_Pin_10,GPIO_Pin_11的代码。所以没有被占用把?

波形是有的。传感器工作正常。现在就是代码读不到传感器的数据,好像就是因为引脚变化的原因导致的。
回复

使用道具 举报

14#
ID:595949 发表于 2022-8-17 12:38 | 只看该作者
石沉大海了属于是 木有下文了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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