博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
驱动程序——MAX6675——基于STM32F103
阅读量:7062 次
发布时间:2019-06-28

本文共 1338 字,大约阅读时间需要 4 分钟。

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;
}

转载于:https://www.cnblogs.com/hflkdz/p/6889593.html

你可能感兴趣的文章
苹果中毒员工称症状复发:入住当地医院遭拒
查看>>
[2039]数据结构上机实验之二分查找
查看>>
php foreach 看鸟哥的记录,存档
查看>>
numpy数组及处理:效率对比
查看>>
javascript事件模型
查看>>
线性表
查看>>
Google前工程经理王忻:如何准备软件工程师的面试
查看>>
CFileFind类的使用总结
查看>>
结编程队-关灯小游戏-项目进度
查看>>
理解 Redis(3) - 字符串值
查看>>
理解 Redis(2) - 手把手教你理清 Redis 安装全过程
查看>>
Ubuntu14安装rt-thread开发环境
查看>>
spring 的权限控制:security
查看>>
python基础===map和zip的用法
查看>>
常见复杂指针声明的解析(很详细)
查看>>
Java反射(Reflection)获取运行时类的结构
查看>>
获取系统热键链表windbg脚本 GetHotkeys windbg script
查看>>
3.2、Android Studio在物理设备中运行APP
查看>>
IOS POST 数据,包括文件 到服务器
查看>>
android 计时器
查看>>