0.96寸tft显示红外测温温度例程stm32f103c8t6
时间: 2023-08-02 22:07:32 浏览: 115
0.96OLED显示屏STM32F103C8T6_SPI例程_0.96寸oled_STM32F103C8T6SPI_stm32f
5星 · 资源好评率100%
好的,以下是一个基于STM32F103C8T6的例程,用于读取红外测温模块的温度数据,并将其显示在0.96寸TFT屏幕上。
首先,你需要准备以下硬件和软件:
- STM32F103C8T6开发板
- 0.96寸TFT显示屏
- 红外测温模块
- ST-LINK/V2调试器
- Keil uVision 5开发环境
接下来,按照以下步骤进行操作:
1. 打开Keil uVision 5开发环境,创建一个新的工程,选择STM32F103C8T6作为芯片型号,并选择对应的器件包。
2. 在工程中添加以下库文件:
- CMSIS
- STM32F10x_StdPeriph_Driver
这些库文件可以在ST官网下载,也可以在Keil uVision 5的Pack Installer中下载。
3. 在工程中添加以下源文件:
- Adafruit_GFX.c
- Adafruit_ST7735.c
这些源文件是用于控制TFT显示屏的库文件,可以从Adafruit官网下载。
4. 编写以下程序代码,用于读取红外测温模块的温度数据,并将其显示在TFT屏幕上。
```c
#include "stm32f10x.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ST7735.h"
#include "MLX90614.h"
#define TFT_CS GPIO_Pin_4
#define TFT_RST GPIO_Pin_3
#define TFT_DC GPIO_Pin_2
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
MLX90614 mlx = MLX90614();
void delay(uint32_t time) {
while(time--);
}
int main(void) {
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOA和GPIOB时钟
tft.begin(); // 初始化TFT屏幕
mlx.begin(); // 初始化红外测温模块
while(1) {
float temp = mlx.readObjectTempC(); // 读取温度数据
char str[16];
sprintf(str, "%.2f C", temp); // 格式化温度数据
tft.fillScreen(ST7735_BLACK); // 清空屏幕
tft.setCursor(0, 0); // 设置光标位置
tft.setTextColor(ST7735_WHITE); // 设置字体颜色
tft.setTextSize(2); // 设置字体大小
tft.print(str); // 在屏幕上显示温度数据
delay(1000000); // 延时一段时间
}
}
```
这个程序使用了Adafruit库和MLX90614库,用于控制TFT屏幕和红外测温模块。它将温度数据读取并在屏幕上显示出来。
注意,上述代码仅供参考。它可能需要根据你使用的具体硬件和库进行修改。在编写代码之前,请确保仔细阅读文档和示例,并理解代码中的每个部分。
阅读全文