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 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);
/
- @brief max6675模块读取温度
- @param None
- @retval 温度值(单位:℃)/float MAX6675_ReadTemperature(void){return (MAX6675_ReadRawValue() 1024.0 / 4096);}
到此这篇max6675测温不准(max6675测温程序)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/68768.html