找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2252|回复: 0
收起左侧

MAX6675数字温度转换芯片驱动代码

[复制链接]
ID:830387 发表于 2024-9-5 11:09 | 显示全部楼层 |阅读模式
MAX6675数字温度转换芯片是由Maxim公司生产的器件,以下是其驱动代码,供参考。


#define Max6675SCK_Pin GPIO_PIN_3
#define Max6675SCK_GPIO_Port GPIOB
#define Max6675MISO_Pin GPIO_PIN_4
#define Max6675MISO_GPIO_Port GPIOB
#define Max6675SC_Pin GPIO_PIN_5
#define Max6675SC_GPIO_Port GPIOB

//////////////////////////////////////////////////////////////////////////////////////////////////
uint16_t Max6675ReadRoutine(void)
{
    uint16_t temp;uint8_t i;
    HAL_GPIO_WritePin(Max6675SC_GPIO_Port,Max6675SC_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);   
    for(i=0;i<16;i++)
    {   
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_SET);
        temp<<=1;
        if(HAL_GPIO_ReadPin(Max6675MISO_GPIO_Port,Max6675MISO_Pin)==GPIO_PIN_SET)temp|=0x0001;else temp&=(~0x0001);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);        
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
        HAL_GPIO_WritePin(Max6675SCK_GPIO_Port,Max6675SCK_Pin,GPIO_PIN_RESET);
    }
    HAL_GPIO_WritePin(Max6675SC_GPIO_Port,Max6675SC_Pin,GPIO_PIN_SET);
    temp>>=3;
    temp&=0x0FFF;
    return temp;
}

//main.c
void main ()
{
  int temperature;
  temperature=(Max6675ReadRoutine()>>2);//温度摄氏度。

}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表