0. 简介
本文例子基于野火指南者开发板(
STM32F103VET6
),用的是标准库编程,TFT1.44和HC-SR04都是用于软件IO模拟去实现时序图,因此基本适用于所有的stm32f103
,主要是实现了在TFT1.44
上显示超声波传感器HC-SR04
的距离
HC-SR04
和TFT1.44
的代码都是参考网上移植的目录和代码风格也是参考火哥的风格,便于移植
1. 实物和显示效果
2. 接线
主要是HC-SR04和TFT1.44的接线,可以在
UltrasonicWave.h
和Lcd_Driver.h
这两个头文件改
2.1 HC-SR04
#define TRIG_PIN GPIO_Pin_4 //TRIG
#define TRIG_PORT GPIOA //TRIG
#define TRIG_GPIO_CLK RCC_APB2Periph_GPIOA
#define ECHO_PIN GPIO_Pin_5 //ECHO
#define ECHO_PORT GPIOA //ECHO
#define ECHO_GPIO_CLK RCC_APB2Periph_GPIOA
TRIC->PA4
ECH0->PA5
2.2 TFT1.44
#define LCD_CTRL GPIOB //定义TFT数据端口
#define LCD_LED GPIO_Pin_8
#define LCD_RS GPIO_Pin_9
#define LCD_CS GPIO_Pin_12
#define LCD_RST GPIO_Pin_13
#define LCD_SCL GPIO_Pin_14
#define LCD_SDA GPIO_Pin_15
LED->PB8
RS->PB9
CS->PB12
RST->PB13
SCL->PB14
SDA->PB15
3. 工程目录
工程目录基本是参考野火的风格,USER放你移植的代码
017 TFF显示屏
├─ Doc
│ └─ Readme.txt
├─ Libraries
│ ├─ CMSIS
│ │ ├─ core_cm3.c
│ │ ├─ core_cm3.h
│ │ ├─ startup
│ │ ├─ stm32f10x.h
│ │ ├─ system_stm32f10x.c
│ │ └─ system_stm32f10x.h
│ └─ STM32F10x_StdPeriph_Driver
│ ├─ Release_Notes.html
│ ├─ inc
│ └─ src
├─ User
│ ├─ TFF_driver
│ │ ├─ Font.h
│ │ ├─ GUI.c
│ │ ├─ GUI.h
│ │ ├─ LCD_Config.h
│ │ ├─ Lcd_Driver.c
│ │ ├─ Lcd_Driver.h
│ │ ├─ Picture.h
│ │ ├─ QDTFT_demo.c
│ │ └─ QDTFT_demo.h
│ ├─ Tim2
│ │ ├─ Tim2.c
│ │ └─ Tim2.h
│ ├─ UltrasonicWave
│ │ ├─ UltrasonicWave.c
│ │ └─ UltrasonicWave.h
│ ├─ delay
│ │ ├─ delay.c
│ │ └─ delay.h
│ ├─ main.c
│ ├─ stm32f10x_conf.h
│ ├─ stm32f10x_it.c
│ ├─ stm32f10x_it.h
│ └─ systick
│ ├─ bsp_systick.c
│ └─ bsp_systick.h
└─ project
├─ 01-LED.uvguix.zh006
├─ 01-LED.uvoptx
├─ 01-LED.uvprojx
├─ DebugConfig
│ ├─ Target_1_STM32F103VE.dbgconf
│ └─ Target_1_STM32F103VE_1.0.0.dbgconf
├─ EventRecorderStub.scvd
├─ Listings
│ ├─ 01-LED.map
│ └─ startup_stm32f10x_hd.lst
└─ Objects
....
4. TFT1.44显示屏原理
TFT1.44是一种液晶显示屏,具有1.44英寸的屏幕尺寸和128x128像素的分辨率。它使用TFT(薄膜晶体管)技术,其中每个像素都由一个红、绿、蓝三个子像素组成,可以产生高质量的彩色图像。该显示屏通过SPI接口与控制器通信,可以显示图像、文本和图形,支持多种字体和颜色。它还具有可编程的背光亮度和对比度,可以根据需要进行调整。
TFT1.44的工作原理是通过液晶分子的电场调节来控制光的透过程度,从而产生不同的亮度和颜色。控制器向显示屏发送信号,控制每个像素的电场,使其显示出所需的图像和文本信息(杨虹等,2000)。
总之,TFT1.44是一种高质量的液晶显示屏,具有广泛的应用,例如嵌入式系统、便携式设备和消费电子产品等。
代码中采用的是软件SPI协议进行驱动,具体代码是我移植过来的,没有细看,只是用的是里面的api而已
5. HC-SR04
超声波模块有4个引脚,分别为Vcc、 Trig(控制端)、 Echo(接收端)、 GND;其中VCC、GND接上5V电源, Trig(控制端)控制发出的超声波信号,Echo(接收端)接收反射回来的超声波信号。
- 工作流程
- 单片机引脚触发Trig测距,给至少 10us 的高电平信号;
- 模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
- 有信号返回,通过 IO 输出一高电平,并单片机定时器计算高电平持续的时间;
- 超声波从发射到返回的时间.
计算公式:测试距离=(高电平时间*声速(340M/S))/2;