stm32f103-demo-在tft1.44显示HCSR04超声波距离

0. 简介

  • 本文例子基于野火指南者开发板(STM32F103VET6),用的是标准库编程,TFT1.44和HC-SR04都是用于软件IO模拟去实现时序图,因此基本适用于所有的stm32f103,主要是实现了在TFT1.44上显示超声波传感器HC-SR04的距离

  • HC-SR04TFT1.44的代码都是参考网上移植的

目录和代码风格也是参考火哥的风格,便于移植

1. 实物和显示效果

在这里插入图片描述

在这里插入图片描述

2. 接线

主要是HC-SR04和TFT1.44的接线,可以在UltrasonicWave.hLcd_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(接收端)接收反射回来的超声波信号。

  • 工作流程
  1. 单片机引脚触发Trig测距,给至少 10us 的高电平信号;
  2. 模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
  3. 有信号返回,通过 IO 输出一高电平,并单片机定时器计算高电平持续的时间;
  4. 超声波从发射到返回的时间.
    计算公式:测试距离=(高电平时间*声速(340M/S))/2;

在这里插入图片描述

6. 代码分享

gittee仓库代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值