43-基于stm32单片机MAX31865铂电阻PT100温度测量源程序、原理图、元器件清单实物制作

功能介绍:采用stm32单片机作为主控MCU,采用MAX31865模块采集PT100温度数据,并且通过SPI协议将数据传送到单片机,stm32单片机收到数据将温度显示到OLED显示屏上,文末有资料分享

43-基于stm32单片机MAX31865铂电阻PT100温度测量(程序+原理图+元器件清单全套资料)

//初始化SPI max31865 的IO口
void SPI1_MAX31865_Init(void)
{
	SPI1_Init();		   		                //初始化SPI1
	SPI1_SetSpeed(SPI_BaudRatePrescaler_64);	//设置为 72/64 = 1.125 M时钟
	writeRegister8_1(0x00, 0x00);                 //清除配置寄存器
	enableBias_1(1);                              //使能偏置电压
	delay_ms(10);                               //等待10ms使得RTDIN的滤波电容充电
	setWires_1(MAX31865_3WIRE);                   //使能PT100 三线工作模式
	clearFault_1();                               //清除故障检测位
	
}  

//RTD接线模式设置


void setWires_1(max31865_numwires_t wires)
{
  uint8_t t = readRegister8_1(MAX31856_CONFIG_REG);
  if (wires == MAX31865_3WIRE) {
    t |= MAX31856_CONFIG_3WIRE;
  } else {
    // 2 or 4 wire
    t &= ~MAX31856_CONFIG_3WIRE;
  }
  writeRegister8_1(MAX31856_CONFIG_REG, t);
}

//设置自动转换模式
void autoConvert_1(bool b)  
{
  uint8_t t = readRegister8_1(MAX31856_CONFIG_REG);
  if (b) {
   	  t |= MAX31856_CONFIG_MODEAUTO;       // enable autoconvert
  } else {
    t &= ~MAX31856_CONFIG_MODEAUTO;       // disable autoconvert
  }
  writeRegister8_1(MAX31856_CONFIG_REG, t);
}

 //使能偏执电压
void enableBias_1(bool b) 
{
  uint8_t t = readRegister8_1(MAX31856_CONFIG_REG);
  if (b) {
    t |= MAX31856_CONFIG_BIAS;       // enable bias
  } else {
    t &= ~MAX31856_CONFIG_BIAS;       // disable bias
  }
  writeRegister8_1(MAX31856_CONFIG_REG, t);
}	

//读寄存器,8位
u8  readRegister8_1(u8 addr) 
{
  uint8_t ret = 0;
  addr &= 0x7F;                      // make sure top bit is set to 1
  SPI1_FLASH_CS=0; 
  delay_us(100);
  SPI1_ReadWriteByte(addr);  //发送写取状态寄存器命令    
  ret = SPI1_ReadWriteByte(0xff);   //写入一个字节  
  delay_us(100);
  SPI1_FLASH_CS=1;                   //取消片选      
  return ret;
}

//读两个寄存器,16位
u16 readRegister16_1(u8 addr)  
{
  uint8_t buffer[2] = {0, 0};
  uint16_t ret = 0;
  readRegisterN_1(addr, buffer, 2);

  ret = buffer[0];
  ret <<= 8;
  ret |=  buffer[1];
  
  return ret;
}

 //读N个寄存器
void readRegisterN_1(u8 addr, u8 buffer[], u8 n)         
{
  addr &= 0x7F;                             // make sure top bit is 0
  SPI1_FLASH_CS=0; 
  delay_us(100);
  SPI1_ReadWriteByte(addr);                  //发送读取状态寄存器命令    
  while (n--) {
    buffer[0] = SPI1_ReadWriteByte(0Xff);
    buffer++;
  }
  delay_us(100);
  SPI1_FLASH_CS=1;                            //取消片选  
}

//指定寄存器写8位数据
void  writeRegister8_1(u8 addr, u8 data)  
{ 
  addr |= 0x80;                              // make sure top bit is set to 1
  SPI1_FLASH_CS=0;
  delay_us(100);
  SPI1_ReadWriteByte(addr);                  //发送读取状态寄存器命令    
  SPI1_ReadWriteByte(data);                  //写入一个字节 
  delay_us(100);
  SPI1_FLASH_CS=1;                            //取消片选                 
}	

 程序打开办法:特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。 

百度云盘资料分享链接

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于STM32MAX31865铂电阻PT100测温全套资料,主要包括以下几个方面的内容: 1. STM32开发板选型:选择适合的STM32开发板,例如STM32F103C8T6或STM32F407VGT6等,这些开发板具备足够的计算能力和丰富的外设资源。 2. MAX31865温度传感器选型:选择MAX31865芯片作为铂电阻PT100温度传感器。MAX31865是一款高精度、高稳定性的温度传感器芯片,具备数字接口,能够方便地与STM32开发板进行通信。 3. 电路设计:根据MAX31865的电路原理图和应用手册进行电路设计,包括传感器接口、电源供给、滤波电路等部分。确保电路稳定可靠,并注意防止传感器信号受到干扰。 4. 硬件调试:完成电路的焊接、连接和调试工作。确认传感器与STM32开发板之间的通信正常,数据传输可靠。 5. 软件开发:使用适当的开发环境和编程语言,如Keil或STM32CubeIDE,编写相应的软件程序。通过读取MAX31865芯片的寄存器,获取温度传感器的温度数据。可以根据需要进行滤波、校准等处理,最终将测得的温度数据显示或输出到其他设备中。 6. 资料文档:整理并收集好相关的资料文档,包括STM32开发板的使用手册、MAX31865芯片的应用手册、电路设计文档、软件程序代码等。以备后续的学习和参考使用。 综上所述,基于STM32MAX31865铂电阻PT100测温全套资料主要包括硬件设计、软件开发和资料文档等内容。通过深入学习和理解这些资料,可以帮助完成STM32MAX31865芯片之间的温度测量应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值