驱动程序——MAX6675——基于STM32F103

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了驱动程序——MAX6675——基于STM32F103相关的知识,希望对你有一定的参考价值。

MAX6675冷端温度补偿、热电偶数字转换器可进行冷端温度补偿,并将K型热电偶信号转换成数字信号。数据输出为12位分辨率、SPI兼容、只读格式。转换器温度分辨率为0.25°C,可读取温度达+1024°C,热电偶在0°C至+700°C温度范围内精度为8 LSB。
#include <stdio.h>
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "MAX6675.h"
#include "Delay.h"

#define SCLK_H GPIO_SetBits(MAX6675_PORT, TC1_SCK)
#define SCLK_L GPIO_ResetBits(MAX6675_PORT, TC1_SCK)
#define DIN GPIO_ReadInputDataBit(MAX6675_PORT, TC1_SO)


void Init_MAX6675_GPIO(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_MAX6675 , ENABLE); 


GPIO_InitStructure.GPIO_Pin = TC1_SCK | TC1_CS;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(MAX6675_PORT, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = TC1_SO;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;
GPIO_Init(MAX6675_PORT, &GPIO_InitStructure);

GPIO_SetBits(MAX6675_PORT, TC1_CS );//CS=1;
GPIO_ResetBits(MAX6675_PORT, TC1_SCK );//SCK=0;


}


uint16_t MAX6675(unsigned char channel)
{
uint16_t temp=0;
char i;
GPIO_ResetBits(MAX6675_PORT, TC1_CS);//CS=0;
for(i=0;i<=15;i++)
{
SCLK_H;//read data SO
Delay(100);
temp<<=1;
if(DIN)
temp|=0x0001;
SCLK_L;
Delay(100);
}
GPIO_SetBits(MAX6675_PORT, TC1_CS);//CS=1;
temp>>=3;//右移3位,D0,D1,D3不要
return temp;
}

以上是关于驱动程序——MAX6675——基于STM32F103的主要内容,如果未能解决你的问题,请参考以下文章

在 STM32f10x 中使用 EEPROM

STM32WB55 或 STM32F10 上的裸机编程

STM32F10系列的命名规则和分类

关于 CMSIS 标准 及 STM32F10x的固件库

2STM32F10x软件准备

STM32F10驱动A4988步进电机驱动模块程序