| 有没有人帮我看看呢,为什么采集到的数据只有一个数据,帮我看看是哪里出了问题,是软件还是硬件 |
IMG_20251011_220844.jpg (739.17 KB, 下载次数: 0)
IMG_20251011_220831.jpg (593.16 KB, 下载次数: 0)
IMG_20251011_220828.jpg (649.87 KB, 下载次数: 0)
IMG_20251011_220819.jpg (602.49 KB, 下载次数: 0)
|
emmm编辑回复好像会造成回复被吞掉(也有可能是还在审核...) 最后找到了原因是因为0832接到了P0口的原因(T.T) 对于P0来说,输出需要接上拉电阻才能正常输出。 感谢楼上各位大佬的回复,再次感谢! |
|
本帖最后由 cfxiaobai 于 2021-10-31 20:13 编辑 确定了是io口的问题T.T 没想到研究了好几天最后发现是因为这个 对于P0来说,输出需要接上拉电阻才能正常输出。 感谢楼上各位大佬的回答,再次感谢! |
|
好像回复的太快了。。被吞了好多我的回复T.T DI,DO口分开,解决了某些0832会读出来254的问题。。读数已经全变成0了。。 然后,拿了另一块使用了0832的板子,用跳线飞过去,可以正常使用,确认 硬件以及传感器的电路部分正常使用。 问题应该出在单片机引脚 或者 程序上面了。 引脚方面,0832对单片机的引脚有要求吗。。(连的是P0^3、P0^4、P0^5这三个引脚) 程序方面,3个0832使用的是同一套程序,修改了程序中定义的引脚,应该不会出现问题T.T 晚一些我尝试一下更换到其他引脚(目前尝试过P0^0 — P0^7都不行T.T) |
|
另外附上0832的代码io我确认没有接错,0832也的vcc与gnd和ch0也都接上了 adc0832这个子程序对应的是第一个0832可以正常读取ch0和ch1的数据 adc0832_这个对应的是第二个0832反复尝试都读取不到数据T.T
|
| 然后还有一个奇怪的问题,换一个不同的0832,有的读出来的是254,有的读出来的是0,采集模块确实会给CH0返回不同的电压,但是0832读出来的数是一直不变的。。(只有1个0832读出来是254,其他的0832读出来的都是0) |
|
本帖最后由 cfxiaobai 于 2021-10-31 19:09 编辑 T.T还没有编辑好,本来以为发的是草稿的。 首先两个0832互换,第一个可以正常用,第二个不能用,排除0832硬件问题 用到两个0832是因为需要3个采集模块,第一个0832的ch已经接满了,而且是可以正常读取到值的。。 第二个0832,cs接的单片机P0^3口,clk是P0^4,DI DO确实是连在一起的,接在了P0^5口(晚点我试试分开接有没有效果) 程序方面,用的是和第一个0832一样的程序,修改了声明的io口,改成了对应io口,电路用万用表测量,没有短路,没有虚焊,可以正常和单片机通讯。 最后,感谢各位大佬的耐心解答! |
|
你说,你要用到2块, 但是,看你CH却只接了一个,实在不明白,为什么不只用一块? 另外,你说读不到数据,实际上是不可能的,这种串型数据传输方案,你给了时钟然后读,要么读到0,要么读到1,不存在读不到这个情况。所以,描述问题要客观,不要主观,凭自己的猜想描述,如果你能主观的分析出问题,也就不用上来问了。 如果你确认几次都找不到问题,那么你先不要把DI,DO连一起,虽然两个口是异步工作,但是不排除会产生干扰。不然和DS1302一样,做成一个IO就完了,为什么要做成两个呢? |
| 既然电路反复确认了好多次没有问题那只能是代码问题。 |
|
你现在有两个同样的ADC0832,调试起来就简单了,可以用替换法,交换两个ADC0832看看什么情况。 还有,这种单片机系统的问题有可能出现在硬件连接或程序代码,最好同时发代码,电路连接,硬件照片,方便大家帮你排查问题。 |