STM32+MAX6675利用SPI获取实时温度数据程序及代码

这篇博客介绍了如何使用STM32F103RCT6微控制器通过模拟SPI与MAX6675温度传感器进行通信,获取实时温度数据。作者指出,模拟SPI与实际SPI在读取温度数据时存在差异,并提供了包含正点原子库函数的代码示例。文章还展示了原理图,并分析了模拟SPI与实际SPI之间差异的原因。
摘要由CSDN通过智能技术生成

之前写的STM32+MAX6675利用io口模拟SPI获取实时温度数据程序及代码

本文采用的芯片为STM32F103RCT6
温度芯片为MAX6675

模拟spi之前写过
里面的部分代码摘取的正点原子的函数库:sys、uart、delay等文件

原理图

在这里插入图片描述

max6675.h
#ifndef __MAX6675_H
#define __MAX6675_H
 
#include "stm32f10x.h"
#include "sys.h" 
void max6675_init(void);			 //初始化max6675模块 
u8 max6675_readWriteByte(u8 TxData);
u16 max6675_readbits_II(void);
float max6675_readTemp(void);
 
#endif

max6675.c
#include "max6675.h"
#include "spi.h"
#include "sys.h" 
#include "delay.h"
#include "usart.h"	

/*max6675初始化程序*/
void max6675_init(void){
   
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE );//PORTB时钟使能
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //PB12推挽输出 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB12
	GPIO_SetBits(GPIOB,GPIO_Pin_12);  //PB12上拉
}

u8 max6675_readWriteByte(u8 TxData)
{
   		
	/* 接受SPI2返回数据 */
	return SPI2_ReadWriteByte(TxData);
}  
u16 max6675_readbits_II(void){
   </
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值