使用MAX31865与树莓派读取温度异常显示极低负值问题排查
问题排查与解决
以下是几个可能导致读取到-242.02异常温度值的原因及对应解决方法:
SPI引脚初始化错误
你代码里的board.SCLK()多了括号,board模块的引脚是属性而非可调用方法,错误调用会导致SPI总线无法正常工作。修正后的代码:spi = busio.SPI(board.SCLK, MOSI=board.MOSI, MISO=board.MISO)CS引脚未设置输出方向
初始化CS引脚时,需要明确设置其方向为输出,否则无法正确控制MAX31865:cs = DigitalInOut(board.D11) cs.direction = Direction.OUTPUT # 添加这行配置RTD类型与库默认配置不匹配
Adafruit的MAX31865类默认适配PT100型传感器,如果你用的是PT1000等其他类型,初始化时需指定rtd_nominal参数:rtd = adafruit_max31865.MAX31865(spi, cs, rtd_nominal=1000)SPI通信模式不匹配
MAX31865要求使用SPI模式3(CPOL=1,CPHA=1),而库默认是模式0,需手动指定:spi = busio.SPI(board.SCLK, MOSI=board.MOSI, MISO=board.MISO, polarity=1, phase=1)树莓派SPI接口未启用
确认树莓派的SPI接口已开启:- 终端输入
sudo raspi-config - 进入
Interfacing Options->SPI选择启用 - 重启树莓派
- 终端输入
内容的提问来源于stack exchange,提问作者Dinesh Kumar
相关产品推荐
相关产品推荐

