咚咚咚————【封装驱动】MAX6675热电偶温度传感器,分享交流自己编写的程序。

咚咚咚————【封装驱动】MAX6675热电偶温度传感器,分享交流自己编写的程序。

/********************************************
主控芯片:STM32 Controller
模块型号:MAX6675
通讯方式:SPI串口通信
作者:苏夏雨
授权:未经作者允许,禁止转载
********************************************/
//定义模块的头文件
#ifndef _MAX6675_H
#define _MAX6675_H
//定义模块引用文件
#include "sys.h"  
#include "delay.h"
//定义模块函数声明
void MAX6675_Init(void);//MAX6675初始化
u16  MAX6675_Read_Temp(void);//MAX6675读取转换温度
#endif

/********************************************
主控芯片:STM32 Controller
模块型号:MAX6675
通讯方式:SPI串口通信
作者:苏夏雨
授权:未经作者允许,禁止转载
********************************************/
//MAX6675温度采样间隔最好不要小于0.2秒
#include "max6675.h"
#define SCK_H (HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3,GPIO_PIN_SET))
#define SCK_L (HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3,GPIO_PIN_RESET))
#define NCE_H (HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_SET))
#define NCE_L (HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET))
#define SDA_R (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5))
void MAX6675_Init(void)//MAX6675初始化
{
	GPIO_InitTypeDef GPIO_Initure;	
	__HAL_RCC_GPIOB_CLK_ENABLE();               //开启GPIO时钟
	
	GPIO_Initure.Pin=GPIO_PIN_3|GPIO_PIN_4;			//PB3/PB4
	GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;      //推挽
	GPIO_Initure.Pull=GPIO_PULLUP;              //上拉
	GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;    //高速
	HAL_GPIO_Init(GPIOB,&GPIO_Initure);
	
	GPIO_Initure.Pin=GPIO_PIN_5;								//PB5
	GPIO_Initure.Mode=GPIO_MODE_INPUT;          //输入
	GPIO_Initure.Pull=GPIO_PULLUP;              //上拉
	GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;    //高速
	HAL_GPIO_Init(GPIOB,&GPIO_Initure);
}
u16  MAX6675_SoftSpi_Read(void)//MAX6675软件SPI读取
{
	u8 i;   
	u16 value;  
	NCE_L; 
	SCK_L; 
	delay_us(1);	
	for(i=0;i<16;i++)
	{
		SCK_H;     
		delay_us(1);
		value<<=1;    
		if(SDA_R)value++;  
		SCK_L;   
		delay_us(1);		
	}
	delay_us(1);
	NCE_H;   
	return value;   
}
u16  MAX6675_Read_Temp(void)//MAX6675读取转换温度
{
	u16 value;
	u8  flag;
	value = MAX6675_SoftSpi_Read();
	flag  = (value&0x04);
	value = value<<1;			//读出来的数据的D3~D14是温度值
	value = value>>4;
	return value/4;				//测得的温度单位是0.25
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值