用stm32 cubemx默认配置i2c1和urart1,本例子是用硬件i2c非模拟i2c
/* I2C1 GPIO Configuration
PB6 ------> I2C1_SCL
PB7 ------> I2C1_SDA
* USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/

在main.c修改如下
温度读取流程:
1.STM32向TMP1117发送一个写命令HAL_I2C_Master_Transmit,其中包含TMP117中温度寄存器的地址(地址0x00)的1个字节。
2.使用读取命令HAL_I2C_Master_Receive从 TMP117 读取 2 个字节。这 2 个字节将包含温度数据。
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <stdio.h>
#include <string.h>
/* USER CODE END Includes */
/* Private variables ---------------------------------------------------------*/
I2C_HandleTypeDef hi2c1;
UART_HandleTypeDef huart1;
uint16_t count = 0;
/* USER CODE BEGIN PV */
static const uint8_t TMP117_ADDR = 0x48 << 1; // Use 8-bit address
//I2C从机的地址最低为是读写标志位,1表示读,0表示写,剩下七位表示从机地址
static const uint8_t REG_TEMP = 0x00;
/* USER CODE END PV */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
int fputc(int ch ,FILE *f)

本文介绍如何使用STM32通过I2C接口与TMP117温度传感器进行通信,实现温度数据的读取,并通过USART接口输出。文中详细解释了I2C读写操作及温度转换过程。

2万+

被折叠的 条评论
为什么被折叠?



