• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

用STM32F407硬件SPI读写ADS1256有问题

是风风不是雨 2018-08-15 浏览量:2618
有谁写过STM32F407读写ADS1256的程序么?
我用硬件SPI驱动ADS1256,读出ADS1256的寄存器的值都是对的。但是设置输入通道后,读出的电压值都不是正确的。
然后我用模拟SPI时序的方法,可以任意切换通道,读出的电压值都是正确的。问题出在哪里呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 把SPI的速度降到最低再试试。

    不行,就查一下硬件上的问题吧

    • 发布于 2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:10
  • 使用示波器查看一下两者的波形和频率,进行对比。
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 这要测一下你的电路上的输入电压是不是对的啊,可能是电路问题了
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • ADS1256进行通道切换和ADC转换是需要时间的,有可能是硬件SPI设置的速度比较快,读取速度太快以至于ADC转换还没有完成就去读取了。导致读取数据异常,可以降低读取速度试试。
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 降低spi速率看看,或者操作寄存器增加延时
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 最好是检查一下线路的干扰问题,用示波器观察一下通信线路是否有干扰
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该还是程序问题,有哪些位置复用,实在不行你可以测试下SPI通讯,一般能读出寄存器通讯是没有问题的,估计还是读取太频繁导致的!
    • 发布于2018-08-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先要把你的通信速率降低,再检查通信的时序,用示波器或者逻辑分析仪观察


    • 发布于2018-08-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先要把你的通信速率降低,再检查通信的时序,用示波器或者逻辑分析仪观察


    • 发布于2018-08-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 可能是你的SPI通信速度太快,你的系统无法及时响应,最好是先降低你的通信速度
    • 发布于2018-08-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 有可能是你通过spi设置通道的指令不正确,使得单片机与从机的spi通信出现时序上的问题,后面的通信就全部出错了。
    • 发布于2018-08-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

用STM32F407硬件SPI读写ADS1256有问题