找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 825|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

移植這個(gè)程序時(shí),除了修改I2C.h以外,還需要修改什么?

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 800 黑幣 回復(fù)本帖可獲得 40 黑幣獎(jiǎng)勵(lì)! 每人限 8 次
跳轉(zhuǎn)到指定樓層
樓主
各位前輩好。
http://www.torrancerestoration.com/bbs/dpj-215528-1.html我下載了上面這個(gè)程序,運(yùn)行后,板子溫濕度數(shù)據(jù)一切正常,引腳是PB6, PB7
I2C.h文件:
#define SDA_GPIO    GPIO_Pin_7
#define SCL_GPIO    GPIO_Pin_6


我的新項(xiàng)目新增OLED顯示屏占用了引腳PB6, PB7,所以HDC1080的引腳我連接到了STM32的PB10, PB11
所以我修改了I2C.h文件的這里:
#define SDA_GPIO    GPIO_Pin_11
#define SCL_GPIO    GPIO_Pin_10
軟件其他地方我都沒有修改。
然后板子溫濕度數(shù)據(jù)在串口助手里就異常了,數(shù)據(jù)總是固定的:125度,100%濕度。


請(qǐng)問是軟件調(diào)試問題吧?那么還需要修改軟件哪里?除了I2C.h   
(這是我第一次移植程序,新手)

這是我下載的別人的程序(HDC1080.rar 未修改過):

這是我修改后的程序(HDC1080rev.rar 我修改過引腳):

這是現(xiàn)在的原理圖:
這是現(xiàn)在輸出的錯(cuò)誤數(shù)據(jù):

謝謝!

HDC1080rev.7z

186.84 KB, 下載次數(shù): 0

FW_HDC1080.7z

186.75 KB, 下載次數(shù): 0

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:88256 發(fā)表于 2022-8-8 11:24 | 只看該作者
1:確認(rèn)你更改后才保存并編譯了嗎?
2:查看其它外圍是否使用了STM32的PB10、PB11,只要有1個(gè)引腳被占用,HDC1080的數(shù)據(jù)就無法被正確讀取。
回復(fù)

使用道具 舉報(bào)

板凳
ID:883242 發(fā)表于 2022-8-8 11:42 | 只看該作者
看了下,是純軟件模擬,沒有用到EXTI、IIC等peripherals,應(yīng)該沒問題啊。用邏輯分析儀之類的工具檢查下波形吧。
回復(fù)

使用道具 舉報(bào)

地板
ID:401564 發(fā)表于 2022-8-8 13:15 | 只看該作者
OLED和HDC1080是可以用一級(jí)IIC的,不需要兩個(gè)時(shí)鐘數(shù)據(jù)線的呀
而且,你要用兩組的話,你就得兩個(gè)IIC驅(qū)動(dòng)了
把SCL和SDA同時(shí)連接OLED和HDC1080就可以了
我就是這樣用的,OLED從機(jī)地址是0x78,HDC1080的從機(jī)地址是0x80
回復(fù)

使用道具 舉報(bào)

5#
ID:595949 發(fā)表于 2022-8-8 14:06 | 只看該作者
Y_G_G 發(fā)表于 2022-8-8 13:15
OLED和HDC1080是可以用一級(jí)IIC的,不需要兩個(gè)時(shí)鐘數(shù)據(jù)線的呀
而且,你要用兩組的話,你就得兩個(gè)IIC驅(qū)動(dòng)了
把 ...

“OLED從機(jī)地址是0x78,HDC1080的從機(jī)地址是0x80”

請(qǐng)問具體修改代碼哪里呢?我沒有設(shè)置過從機(jī)地址。我怕改錯(cuò)了啊
回復(fù)

使用道具 舉報(bào)

6#
ID:1023753 發(fā)表于 2022-8-8 14:06 | 只看該作者
PB10, PB11是不是I2C接口
回復(fù)

使用道具 舉報(bào)

7#
ID:595949 發(fā)表于 2022-8-8 14:07 | 只看該作者
Hephaestus 發(fā)表于 2022-8-8 11:42
看了下,是純軟件模擬,沒有用到EXTI、IIC等peripherals,應(yīng)該沒問題啊。用邏輯分析儀之類的工具檢查下波形 ...

我用邏輯分析和示波器都測(cè)量過HDC1080的引腳。都是有波形的。
回復(fù)

使用道具 舉報(bào)

8#
ID:595949 發(fā)表于 2022-8-8 14:07 | 只看該作者
hhdsdy 發(fā)表于 2022-8-8 11:24
1:確認(rèn)你更改后才保存并編譯了嗎?
2:查看其它外圍是否使用了STM32的PB10、PB11,只要有1個(gè)引腳被占用, ...

是的,保存,編譯,JTAG下載到STM32。
PB10, PB11連接HDC1080,沒有連接其他
回復(fù)

使用道具 舉報(bào)

9#
ID:799053 發(fā)表于 2022-8-8 16:21 | 只看該作者
你看下,PB10, PB11 有沒有被占用。
回復(fù)

使用道具 舉報(bào)

10#
ID:799053 發(fā)表于 2022-8-8 16:30 | 只看該作者
查看PB10、PB11是否被占用,用示波器抓一下SCL波形是否正常,SDA 是否有數(shù)據(jù)波形。
回復(fù)

使用道具 舉報(bào)

11#
ID:401564 發(fā)表于 2022-8-9 00:04 | 只看該作者
bjdhjy888 發(fā)表于 2022-8-8 14:06
“OLED從機(jī)地址是0x78,HDC1080的從機(jī)地址是0x80”

請(qǐng)問具體修改代碼哪里呢?我沒有設(shè)置過從機(jī)地址。我 ...

沒有說要改呀
只是告訴你而已了
現(xiàn)在都搞不明白你這問題
1,你下載的原本的IIC引腳是PB10, PB11,原來帖子的就是這兩個(gè)IO
2,你上傳的工程引腳是PB6, PB7,那這個(gè)是你改過的還是什么?
3,你上傳的工程是可以正確顯示的溫度的還是不能正確顯示溫度的?
"我的新項(xiàng)目新增OLED顯示屏占用了引腳PB6, PB7,所以HDC1080的引腳我連接到了STM32的PB10, PB11"
你這是什么意思?意思是不是說OLED你還要重新寫一個(gè)IIC,C文件?
你以前的那個(gè)可能正確顯示的SCL和SDA,就是這兩根線,可以同時(shí)控制OLED和HDC1080,你明白我意思沒有?
不要什么SDA_HDC,SDA_SSD1309了,就要一個(gè)就行了SDA
OLED的1腳,HDC1080的1腳,單片機(jī)的PB7,這三個(gè)接一塊,再不明白就沒法了
回復(fù)

使用道具 舉報(bào)

12#
ID:595949 發(fā)表于 2022-8-9 05:52 | 只看該作者
Y_G_G 發(fā)表于 2022-8-9 00:04
沒有說要改呀
只是告訴你而已了
現(xiàn)在都搞不明白你這問題

謝謝。我理解。我最早就是把2個(gè)設(shè)備連接到同一對(duì)引腳上。如圖:


我的問題是:“OLED從機(jī)地址是0x78,HDC1080的從機(jī)地址是0x80”這句話,請(qǐng)問代碼里怎么修改呢?軟件怎么知道“OLED從機(jī)地址是0x78,HDC1080的從機(jī)地址是0x80”呢?這個(gè)我還是不明白。
回復(fù)

使用道具 舉報(bào)

13#
ID:595949 發(fā)表于 2022-8-9 05:55 | 只看該作者
zilihangjian 發(fā)表于 2022-8-8 16:21
你看下,PB10, PB11 有沒有被占用。

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

波形是有的。傳感器工作正!,F(xiàn)在就是代碼讀不到傳感器的數(shù)據(jù),好像就是因?yàn)橐_變化的原因?qū)е碌摹?/td>
回復(fù)

使用道具 舉報(bào)

14#
ID:595949 發(fā)表于 2022-8-17 12:38 | 只看該作者
石沉大海了屬于是 木有下文了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表