![]() |
發(fā)布時間: 2019-10-23 19:28
正文摘要:接線時,OUT直接接萬用表的正極,GND接萬用表的負極,VCC接單片機的5v引腳,GND也接單片機的地,但是主函數(shù)中調(diào)用MCP4725_WriteData_Voltage(4000); 不論取值時2000,4000,還是1000,還是4095,萬用表測 ... |
Y_G_G 發(fā)表于 2021-7-26 20:34 這個已經(jīng)很貼切的說明了地址(A2,A1),絲印AJ對應A0(00),AP對應A1(01),AQ對應A2(10),AR對應A3(11),A0的地址由用戶自己設定0(接地)或者1(通過10k左右電阻接VDD)。 |
兩年了,又看到這個帖子了,在數(shù)據(jù)手冊的27頁面和43頁面有說明:高位是1100,A2,A1的值要看你手頭上芯片的絲印,A0就是芯片的A0引腳電平,一定要接VCC或者GND,不能懸空 ![]() ![]() |
張小帥1126 發(fā)表于 2020-11-7 22:05 那兩個地方啊 |
我的調(diào)通了,地址是0xC0, 說來也不容易啊,賣家給的地址是 0x60 或0x61,怎么試驗都不行, 后來我自動累加地址試驗串口輸出觀察地址和示波器上的電壓 ![]() (最后需要注意的是 兩個地方需要改地址) |
謝謝大佬們指點 |
Y_G_G 發(fā)表于 2019-10-27 01:34 感謝大佬提醒 ![]() |
aaaaaa。 發(fā)表于 2019-10-26 18:53 還有A0端口,要么上拉,要么接地,不能空著 最后,根據(jù)A0的高低電平和絲印來先確定器件的地址 |
我認為你的MCP4725的A0腳應該接地或上拉,不應該懸空。 這樣程序?qū)α,輸出結果才對。 |
怎么看絲印啊 |
aaaaaa。 發(fā)表于 2019-10-26 18:53 這不是第一步 首先,你要先看到MCP4725上面的絲印是什么,然后才能確定地址位是多少,并不是絕對的0xC2的,不同的絲印的器件地址位是不同的 看不清楚的話可以用放大鏡或者手機拍下來看 先確定了器件地址再說 |
我這樣做提示,沒有問題吧,但我的程序現(xiàn)在還是不能用 |
//使用快速模式寫命令寫DAC寄存器 void MCP4725_WriteData_Voltage(u16 Vout) //電壓單位mV { u8 temp; u16 Dn; LED_Init(); //初始化與LED連接的硬件接口 Dn = ( 4096 * Vout) / VREF_5V; temp = (0x0F00 & Dn) >> 8; //12位數(shù)據(jù) IIC_Start(); IIC_Send_Byte(0XC2); //器件尋址,器件代嗎:1100; 地址位A2,A1,A0為 0 , 0 , 1;-> 1100 0010 IIC_Wait_Ack(); IIC_Send_Byte(temp); IIC_Wait_Ack(); IIC_Send_Byte(Dn); //將低8位送到DAC寄存器 IIC_Wait_Ack(); LED0=0; // 我用LED0的亮做了提示 IIC_Stop();//產(chǎn)生一個停止條件 delay_ms(10); } 結果LED亮了,是不是代表我的IIC地址沒錯 |
MCP4725的器件地址并不是固定的,它是在出廠的時候設定的,在數(shù)據(jù)手冊的后面有流明的 所以,你網(wǎng)上下載的程序代碼有可能和你現(xiàn)在手頭上的IC器件地址是不對應的 C我不會,STM32沒用過 但原理是一樣的,你可以在寫完器件的8位數(shù)據(jù)的應答信號之后加一個標志位,并通過屏幕或者一個LED指示燈提示出來,如果沒有提示,就表明器件的地址不對,或者是其它的問題 只要能確定4725可以正常應答了,那么器件的地址就是對的 |
程序的話,我就看的網(wǎng)上的例程 |
Powered by 單片機教程網(wǎng)