max6675测温不准(max6675测温程序)

max6675测温不准(max6675测温程序)nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp define MAX6675 CS Pin GPIO PIN 12 define MAX6675 CS GPIO Port GPIOB SPI HandleTypeDe hspi2 USER CODE BEGIN

大家好,我是讯享网,很高兴认识大家。




讯享网

           define MAX6675_CS_Pin GPIO_PIN_12

define MAX6675_CS_GPIO_Port GPIOB

SPI_HandleTypeDef hspi2;/ USER CODE BEGIN Includes /
/ USER CODE END Includes /
/ Private typedef ———————————————————–// USER CODE BEGIN TD /
/ USER CODE END TD /
/ Private define ————————————————————// USER CODE BEGIN Define /
/ USER CODE END Define /
/ Private macro ————————————————————-// USER CODE BEGIN Macro /
/ USER CODE END Macro /
/ Private variables ———————————————————// USER CODE BEGIN PV /
/ USER CODE END PV /
/ Private funcon prototypes ———————————————–// USER CODE BEGIN PFP /
/ USER CODE END PFP /
/ External functions ——————————————————–// USER CODE BEGIN ExternalFunctions /
/ USER CODE END ExternalFunctions /
/ USER CODE BEGIN 0 //


  • @brief SPI2 Initialization Function
  • @param None
  • @retval None*/static void MX_SPI2_Init(void){
/ USER CODE BEGIN SPI2_Init 0 /
/ USER CODE END SPI2_Init 0 /
/ USER CODE BEGIN SPI2_Init 1 /
/ USER CODE END SPI2_Init 1 // SPI2 parameter configuration/hspi2.Instance = SPI2;hspi2.Init.Mode = SPI_MODE_MASTER;hspi2.Init.Direction = SPI_DIRECTION_2LINES;hspi2.Init.DataSize = SPI_DATASIZE_8BIT;hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;hspi2.Init.NSS = SPI_NSS_SOFT;hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;hspi2.Init.TIMode = SPI_TIMODE_DISABLE;hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;hspi2.Init.CRCPolynomial = 7;hspi2.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;hspi2.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;if (HAL_SPI_Init( hspi2) != HAL_OK){Error_Handler();}}/ USER CODE END 0 /void HAL_MspInit(void){/ USER CODE BEGIN MspInit 0 /
/ USER CODE END MspInit 0 /
HAL_RCC_SYSCFG_CLK_ENABLE();HAL_RCC_PWR_CLK_ENABLE();
/ System interrupt init/
/ USER CODE BEGIN MspInit 1 /
/ USER CODE END MspInit 1 /}
/


  • @brief SPI MSP Initialization
  • This function configures the hardware resources used in this example
  • @param hspi: SPI handle pointer
  • @retval None/void HAL_SPI_MspInit(SPI_HandleTypeDef spiHandle){GPIO_InitTypeDef GPIO_InitStruct = {0};if(spiHandle->Instance==SPI2){/ USER CODE BEGIN SPI2_MspInit 0 /
    / USER CODE END SPI2_MspInit 0 // Peripheral clock enable /__HAL_RCC_SPI2_CLK_ENABLE();
    HAL_RCC_GPIOB_CLK_ENABLE();/*SPI2 GPIO ConfigurationPB13     ——> SPI2_SCKPB14     ——> SPI2_MISOPB15     ——> SPI2_MOSI/GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;HAL_GPIO_Init(GPIOB,  GPIO_InitStruct);
    / USER CODE BEGIN SPI2_MspInit 1 /
    / USER CODE END SPI2_MspInit 1 /}
}
/
}
/ USER CODE BEGIN 1 /
//MAX6675 片选引脚初始化void GPIO_Init(void){GPIO_InitTypeDef GPIO_InitStruct = {0};
/ GPIO Ports Clock Enable /__HAL_RCC_GPIOB_CLK_ENABLE();
HAL_GPIO_WritePin(GPIOB, MAX6675_CS_Pin, GPIO_PIN_SET);/引脚配置 /GPIO_InitStruct.Pin = MAX6675_CS_Pin;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOB,  GPIO_InitStruct);}
/

  • @brief  max66675模块初始化
  • @param  None
  • @retval None*/void MAX6675_Init(void){GPIO_Init();     //片选引脚初始化MX_SPI2_Init();  //spi总线初始化}
/


  • @brief  max6675模块读写一个字节的数据
  • @param  txData:要发送的数据
  • @retval 接收到的数据*/uint8_t MAX6675_ReadWriteByte(uint8_t txData){unsigned char txdata,rxdata;txdata = txData;HAL_SPI_TransmitReceive( hspi2, txdata, rxdata,1,1000);return rxdata;}
/

  • @brief  max6675模块读取测得的原始数据
  • @param  None
  • @retval 温度的原始数据*/uint16_t MAX6675_ReadRawValue(void){uint16_t tmp=0;MAX6675_CS(0);tmp = MAX6675_ReadWriteByte(0XFF); //read MSBtmp <<= 8;tmp |= MAX6675_ReadWriteByte(0XFF); //read LSBMAX6675_CS(1);
if (tmp&nbsp; &nbsp;4){// thermocouple opentmp = 4095; //未检测到热电偶}else{tmp = tmp >> 3;}tmp=tmp࿿ //12bitreturn tmp;}
/


  • @brief&nbsp;&nbsp;max6675模块读取温度
  • @param&nbsp;&nbsp;None
  • @retval 温度值(单位:℃)/float MAX6675_ReadTemperature(void){return (MAX6675_ReadRawValue()&nbsp;&nbsp;1024.0 / 4096);}
//MAX6675 片选控制void MAX6675_CS(unsigned char choose){if(choose == 1){HAL_GPIO_WritePin(GPIOB, MAX6675_CS_Pin, GPIO_PIN_SET);}else{HAL_GPIO_WritePin(GPIOB, MAX6675_CS_Pin, GPIO_PIN_RESET);}}



  • @brief SPI MSP De-Initialization
  • This function freeze the hardware resources used in this example
  • @param hspi: SPI handle pointer
  • @retval None/void HAL_SPI_MspDeInit(SPI_HandleTypeDef spiHandle){if(spiHandle->Instance==SPI2){/ USER CODE BEGIN SPI2_MspDeInit 0 /
    / USER CODE END SPI2_MspDeInit 0 // Peripheral clock disable /HAL_RCC_SPI2_CLK_DISABLE();
    /*SPI2 GPIO ConfigurationPB13&nbsp; &nbsp;&nbsp;&nbsp;——> SPI2_SCKPB14&nbsp; &nbsp;&nbsp;&nbsp;——> SPI2_MISOPB15&nbsp; &nbsp;&nbsp;&nbsp;——> SPI2_MOSI/HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
    / USER CODE BEGIN SPI2_MspDeInit 1 /
    / USER CODE END SPI2_MspDeInit 1 /}
小讯
上一篇 2025-05-08 21:15
下一篇 2025-04-23 11:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/160872.html