之前写的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){
</