-
MAX6675温度打印出现问题
#include"main.h"#include"MAX6675.h"externSPI_HandleTypeDefhspi2;//-------------------Functions----------------uint8_tMAX6675_ReadWriteByte(uint8_ttxData){unsignedchartxdata,rxdata;txdata=txData;HAL_SPI_TransmitReceive(&hspi2,&txdata,&rxdata,1,1000);returnrxdata;}/***@briefmax6675模块读取测得的原始数据*@paramNone*@retval温度的原始数据*/uint16_tMAX6675_ReadRawValue(void){uint16_ttmp=0;HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_RESET);;tmp=MAX6675_ReadWriteByte(0XFF);//readMSBtmpMODER&=~(GPIO_MODER_MODE2|GPIO_MODER_MODE3);GPIOA->MODER|=(GPIO_MODER_MODE2_1|GPIO_MODER_MODE3_1);GPIOA->AFR[0]|=(7UCR1|=USART_CR1_TE_Msk|USART_CR1_RE_Msk|USART_CR1_RXNEIE_Msk|USART_CR1_UE_Msk;}//发送字符串到USART2voidUSART2_SendString(char*str){while(*str){while(!(USART2->ISR&USART_ISR_TXE_Msk));USART2->TDR=*str++;}}voidHAL_SPI_MspInit(SPI_HandleTypeDef*hspi){GPIO_InitTypeDefGPIO_InitStruct={0};if(hspi->Instance==SPI2){/*USERCODEBEGINSPI2_MspInit0*//*USERCODEENDSPI2_MspInit0*//*Peripheralclockenable*/__HAL_RCC_SPI2_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();/**SPI2GPIOConfigurationPB13------>SPI2_SCKPB14------>SPI2_MISO*/GPIO_InitStruct.Pin=GPIO_PIN_13|GPIO_PIN_14;GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;GPIO_InitStruct.Pull=GPIO_NOPULL;GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_HIGH;GPIO_InitStruct.Alternate=GPIO_AF5_SPI2;HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);}}while(1){/*WriteNDEFtoEEPROM*/K_Temperature=MAX6675_ReadTemperature();//读取热电偶温度值sprintf(str,"Temperature:%.2f\r\n",K_Temperature);USART2_SendString(str);//延时一段时间HAL_Delay(1000);}
2023-05-22 0