亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

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

QQ登錄

只需一步,快速開始

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

ADC0832調(diào)試問題求解,單片機(jī)讀取不到數(shù)據(jù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:946216 發(fā)表于 2021-10-31 01:01 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
做了一個(gè)讀取ph值,光照強(qiáng)度,土壤濕度的單片機(jī)
需要用到2個(gè)0832,第一個(gè)沒問題,可以正常用,第二個(gè)死活讀取不到數(shù)據(jù)。。
0832確認(rèn)沒有問題,放在其他單片機(jī)上可以正常跑。
電路反復(fù)確認(rèn)了好多次,應(yīng)該也沒有接錯(cuò)(焊工非常渣,見諒。)

實(shí)在找不到原因了,發(fā)帖求助一下。。希望各位大佬可以幫忙找找原因T.T


2.png (34.62 KB, 下載次數(shù): 64)

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

使用道具 舉報(bào)

沙發(fā)
ID:973695 發(fā)表于 2021-10-31 09:19 | 只看該作者
你現(xiàn)在有兩個(gè)同樣的ADC0832,調(diào)試起來就簡(jiǎn)單了,可以用替換法,交換兩個(gè)ADC0832看看什么情況。

還有,這種單片機(jī)系統(tǒng)的問題有可能出現(xiàn)在硬件連接或程序代碼,最好同時(shí)發(fā)代碼,電路連接,硬件照片,方便大家?guī)湍闩挪閱栴}。
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2021-10-31 12:17 | 只看該作者
既然電路反復(fù)確認(rèn)了好多次沒有問題那只能是代碼問題。
回復(fù)

使用道具 舉報(bào)

地板
ID:624769 發(fā)表于 2021-10-31 14:49 | 只看該作者
你說,你要用到2塊, 但是,看你CH卻只接了一個(gè),實(shí)在不明白,為什么不只用一塊?

另外,你說讀不到數(shù)據(jù),實(shí)際上是不可能的,這種串型數(shù)據(jù)傳輸方案,你給了時(shí)鐘然后讀,要么讀到0,要么讀到1,不存在讀不到這個(gè)情況。所以,描述問題要客觀,不要主觀,憑自己的猜想描述,如果你能主觀的分析出問題,也就不用上來問了。

如果你確認(rèn)幾次都找不到問題,那么你先不要把DI,DO連一起,雖然兩個(gè)口是異步工作,但是不排除會(huì)產(chǎn)生干擾。不然和DS1302一樣,做成一個(gè)IO就完了,為什么要做成兩個(gè)呢?
回復(fù)

使用道具 舉報(bào)

5#
ID:946216 發(fā)表于 2021-10-31 19:01 | 只看該作者
本帖最后由 cfxiaobai 于 2021-10-31 19:09 編輯

T.T還沒有編輯好,本來以為發(fā)的是草稿的。
首先兩個(gè)0832互換,第一個(gè)可以正常用,第二個(gè)不能用,排除0832硬件問題
用到兩個(gè)0832是因?yàn)樾枰?個(gè)采集模塊,第一個(gè)0832的ch已經(jīng)接滿了,而且是可以正常讀取到值的。。

第二個(gè)0832,cs接的單片機(jī)P0^3口,clk是P0^4,DI DO確實(shí)是連在一起的,接在了P0^5口(晚點(diǎn)我試試分開接有沒有效果)
程序方面,用的是和第一個(gè)0832一樣的程序,修改了聲明的io口,改成了對(duì)應(yīng)io口,電路用萬用表測(cè)量,沒有短路,沒有虛焊,可以正常和單片機(jī)通訊。

最后,感謝各位大佬的耐心解答!
回復(fù)

使用道具 舉報(bào)

6#
ID:946216 發(fā)表于 2021-10-31 19:06 | 只看該作者
然后還有一個(gè)奇怪的問題,換一個(gè)不同的0832,有的讀出來的是254,有的讀出來的是0,采集模塊確實(shí)會(huì)給CH0返回不同的電壓,但是0832讀出來的數(shù)是一直不變的。。(只有1個(gè)0832讀出來是254,其他的0832讀出來的都是0)
回復(fù)

使用道具 舉報(bào)

7#
ID:946216 發(fā)表于 2021-10-31 19:09 | 只看該作者
另外附上0832的代碼io我確認(rèn)沒有接錯(cuò),0832也的vcc與gnd和ch0也都接上了
adc0832這個(gè)子程序?qū)?yīng)的是第一個(gè)0832可以正常讀取ch0和ch1的數(shù)據(jù)
adc0832_這個(gè)對(duì)應(yīng)的是第二個(gè)0832反復(fù)嘗試都讀取不到數(shù)據(jù)T.T
  1. //ad的控 制口
  2. sbit  cs   = P3 ^ 5;         //片選
  3. sbit  date = P3 ^ 4;         //數(shù)據(jù)口
  4. sbit  clk  = P3 ^ 3;         //數(shù)據(jù)口

  5. sbit  cs_   = P0 ^ 3;         //片選
  6. sbit  date_ = P0 ^ 5;         //數(shù)據(jù)口
  7. sbit  clk_  = P0 ^ 4;         //數(shù)據(jù)口
  8. //////////==========ad轉(zhuǎn)換  返回ad的采樣數(shù)值=========////////////
  9. uchar adc0832(bit channel)
  10. {
  11.     uchar i, temp;

  12.     clk = 0;

  13.     cs = 0;                 //選中ad芯片

  14.     clk = 0;
  15.     date = 1; //發(fā)送bit 1 規(guī)定啟動(dòng)信號(hào)
  16. //DIN=1;
  17.     clk = 1; //第一個(gè)一個(gè)上升沿 規(guī)定啟動(dòng)信號(hào)

  18.     clk = 0;
  19.     date = 1; //單通道入 倆個(gè)控制位  10 為 通道  0  11為通道1      多通道差分出入  00為 0+ 1-          01 為0- 1+          這里選擇10 只有通道0輸入
  20. //DIN=1;

  21.     clk = 1; //第二一個(gè)上升沿 設(shè)置為通道

  22.     clk = 0;
  23. //        DIN=0;
  24.     date = channel; //0;//
  25.     clk = 1; //第三一個(gè)上升沿 設(shè)置通道0

  26.     clk = 0;                         //第一個(gè)下降沿?cái)?shù)據(jù)沒有輸出
  27.     date = 1;                         //置一端口,設(shè)置51的io口為輸入
  28.     clk = 1;
  29. //數(shù)據(jù)從頭到尾輸出
  30.     for(i = 8; i > 0; i--)
  31.     {

  32.         clk = 1;                         //        準(zhǔn)備數(shù)據(jù)輸出

  33.         clk = 0;                //下降沿出數(shù)據(jù)
  34. //穩(wěn)定一下在讀取數(shù)據(jù)
  35.         //           temp|=date;
  36.         if(date)
  37.             temp++;
  38.         temp <<= 1;
  39.     }
  40. //數(shù)據(jù)從尾到頭輸出
  41. //        for(i=8;i>0;i--){

  42. //                   clk =1;                         //        準(zhǔn)備數(shù)據(jù)輸出
  43. //                   clk =0;                 //下降沿出數(shù)據(jù)
  44. //        }
  45.     cs = 1;                 //釋放芯片
  46.     return temp;  //返回讀回來的數(shù)值
  47. }



  48. uchar adc0832_(bit channel)
  49. {
  50.     uchar i, temp;

  51.     clk_ = 0;

  52.     cs_ = 0;                 //選中ad芯片

  53.     clk_ = 0;
  54.     date_ = 1; //發(fā)送bit 1 規(guī)定啟動(dòng)信號(hào)
  55. //DIN=1;
  56.     clk_ = 1; //第一個(gè)一個(gè)上升沿 規(guī)定啟動(dòng)信號(hào)

  57.     clk_ = 0;
  58.     date_ = 1; //單通道入 倆個(gè)控制位  10 為 通道  0  11為通道1      多通道差分出入  00為 0+ 1-          01 為0- 1+          這里選擇10 只有通道0輸入
  59. //DIN=1;

  60.     clk_ = 1; //第二一個(gè)上升沿 設(shè)置為通道

  61.     clk_ = 0;
  62. //        DIN=0;
  63.     date_ = channel; //0;//
  64.     clk_ = 1; //第三一個(gè)上升沿 設(shè)置通道0

  65.     clk_ = 0;                         //第一個(gè)下降沿?cái)?shù)據(jù)沒有輸出
  66.     date_ = 1;                         //置一端口,設(shè)置51的io口為輸入
  67.     clk_ = 1;
  68. //數(shù)據(jù)從頭到尾輸出
  69.     for(i = 8; i > 0; i--)
  70.     {

  71.         clk_ = 1;                         //        準(zhǔn)備數(shù)據(jù)輸出

  72.         clk_ = 0;                //下降沿出數(shù)據(jù)
  73. //穩(wěn)定一下在讀取數(shù)據(jù)
  74.         //           temp|=date_;
  75.         if(date_)
  76.             temp++;
  77.         temp <<= 1;
  78.     }
  79. //數(shù)據(jù)從尾到頭輸出
  80. //        for(i=8;i>0;i--){

  81. //                   clk_ =1;                         //        準(zhǔn)備數(shù)據(jù)輸出
  82. //                   clk_ =0;                 //下降沿出數(shù)據(jù)
  83. //        }
  84.     cs_ = 1;                 //釋放芯片
  85.     return temp;  //返回讀回來的數(shù)值
  86. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

8#
ID:946216 發(fā)表于 2021-10-31 19:48 | 只看該作者
好像回復(fù)的太快了。。被吞了好多我的回復(fù)T.T
DI,DO口分開,解決了某些0832會(huì)讀出來254的問題。。讀數(shù)已經(jīng)全變成0了。。

然后,拿了另一塊使用了0832的板子,用跳線飛過去,可以正常使用,確認(rèn) 硬件以及傳感器的電路部分正常使用。

問題應(yīng)該出在單片機(jī)引腳 或者 程序上面了。
引腳方面,0832對(duì)單片機(jī)的引腳有要求嗎。。(連的是P0^3、P0^4、P0^5這三個(gè)引腳)

程序方面,3個(gè)0832使用的是同一套程序,修改了程序中定義的引腳,應(yīng)該不會(huì)出現(xiàn)問題T.T
晚一些我嘗試一下更換到其他引腳(目前嘗試過P0^0 — P0^7都不行T.T)
回復(fù)

使用道具 舉報(bào)

9#
ID:946216 發(fā)表于 2021-10-31 20:11 | 只看該作者
本帖最后由 cfxiaobai 于 2021-10-31 20:13 編輯

確定了是io口的問題T.T
沒想到研究了好幾天最后發(fā)現(xiàn)是因?yàn)檫@個(gè)

對(duì)于P0來說,輸出需要接上拉電阻才能正常輸出。


感謝樓上各位大佬的回答,再次感謝!

回復(fù)

使用道具 舉報(bào)

10#
ID:946216 發(fā)表于 2021-10-31 20:15 | 只看該作者
emmm編輯回復(fù)好像會(huì)造成回復(fù)被吞掉(也有可能是還在審核...)
最后找到了原因是因?yàn)?832接到了P0口的原因(T.T)
對(duì)于P0來說,輸出需要接上拉電阻才能正常輸出。


感謝樓上各位大佬的回復(fù),再次感謝!
回復(fù)

使用道具 舉報(bào)

11#
ID:1160955 發(fā)表于 2025-10-11 22:28 來自觸屏版 | 只看該作者
有沒有人幫我看看呢,為什么采集到的數(shù)據(jù)只有一個(gè)數(shù)據(jù),幫我看看是哪里出了問題,是軟件還是硬件

IMG_20251011_220844.jpg (739.17 KB, 下載次數(shù): 0)

IMG_20251011_220844.jpg

IMG_20251011_220831.jpg (593.16 KB, 下載次數(shù): 0)

IMG_20251011_220831.jpg

IMG_20251011_220828.jpg (649.87 KB, 下載次數(shù): 0)

IMG_20251011_220828.jpg

IMG_20251011_220819.jpg (602.49 KB, 下載次數(shù): 0)

IMG_20251011_220819.jpg
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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