当前位置:网站首页 > 编程语言 > 正文

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



         

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






}
/

  • @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    ------> SPI2_SCKPB14    ------> SPI2_MISOPB15    ------> 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 /}






}
/ 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 4){// thermocouple opentmp = 4095; //未检测到热电偶}else{tmp = tmp >> 3;}tmp=tmp&0x0FFF; //12bitreturn tmp;}
/

  • @brief  max6675模块读取温度

  • @param  None

  • @retval 温度值(单位:℃)/float MAX6675_ReadTemperature(void){return (MAX6675_ReadRawValue()  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);}}









































到此这篇max6675测温不准(max6675测温程序)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!



版权声明


相关文章:

  • w25q128fv和jv有区别吗(w25q128fv和jv和fw区别)2025-06-17 08:09:05
  • oven safe(ovensafe 什么意思)2025-06-17 08:09:05
  • 二级域名ip地址(二级域名配置https)2025-06-17 08:09:05
  • tii审稿周期(tip审稿周期)2025-06-17 08:09:05
  • dos2unix命令找不到(dos命令找不到指定文件)2025-06-17 08:09:05
  • 获取位置信息失败怎么解决(定位开着为什么显示获取位置失败)2025-06-17 08:09:05
  • /hp怎么读(pet怎么读)2025-06-17 08:09:05
  • webflux优缺点(webflux太难用了)2025-06-17 08:09:05
  • qt字符串转浮点数(qt字符串转float)2025-06-17 08:09:05
  • keil破解版被律师函(keil破解成功什么样子)2025-06-17 08:09:05
  • 全屏图片