利用HC-SR04超声波传感器测量到目标物体的距离,并利用GDB调试窗口显示。
2 `) u9 }7 B( o( e! P
! B6 W* p2 U% N0 X( O7 O9 f6 W具体而言,在模块trig端输出一个至少10us的高电平信号,则该模块内部将循环发射8个40KHz频率的脉冲;若检测由回波信号,则会在echo端产生高电平信号。& V E5 o3 f2 Q) z
三、实验器材:
# L3 }' K. l0 o# d1 A+ Z1.stm32小蓝板一块
' @% q7 R( ?$ d2 j0 Q8 o( @, g% j( h3 g/ ]7 T
2.超声波传感器HC-SR04一个. D- B! Q7 B/ P' a# Y
: b1 V' A! Y& i. E; j% W5 Y& U3.杜邦线4根。
1 y; k) n5 o) z- |
6 I/ X% i' e/ L8 L- D$ k4.stlink下载器一个 S1 i: u4 f1 A) ~( Y6 H
. n+ h+ S' u" H! l& A8 N5.usb供电线一根
* P& Q# T6 q& B- I: d) O4 z# r1 g+ Y2 a9 R
- g( d# f# X0 Z- C4 l
注意:该超声波传感器模块需工作在5.0V电压,所以仅仅有stlink下载器3.3v供电是不够的,需要再加上usb5.0v供电
1 `/ ]/ ?( N& x+ r* `% _
|4 Y! n! d/ P/ D0 R, G; S, A+ N2 i6 N
话不多说了,上代码:
! b+ i% n B3 Q0 G- int trig =PA4;//Trig端' S: F! B6 \% D# B# [
- int echo = PA5;//Echo端
9 A, m' k( o8 V8 _4 X - float d=0.0;4 A7 h# G9 Y+ C; c- K
- unsigned long time = 0;
7 C2 {& ]2 y7 }( f - float Distance() {' s* ]1 I( _4 s# z, }$ a4 Z2 h
- digitalWrite(trig,HIGH);9 F" x8 s) J( ^% E3 p
- delayMicroseconds(15);//需要大于105 M# H, [2 O& B6 X2 C7 \( \
- digitalWrite(trig,LOW);
3 p) k- a* f8 E+ r/ ] - time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。- k: Z* q; U4 r- \. Y
- float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来
) p2 [9 c( {% Y8 U0 W) t+ ^! ^1 R - Serial.println(S);
8 m. a% ?( a# \6 B }# J& N( w" m - time = 0;' H, T- d/ S1 d3 L8 c
- return S;
( Y- q( [( f& _( o& Y( C$ q - }
- ]' G P H! A - void setup(). {7 p) A) s% b8 `& M, |
- {5 ~$ m Z3 Z/ B( v! u; I
- // put your setup code here, to run once:
& W# }% w& k. E' I - pinMode(echo,INPUT);, o; L& g7 i. ]
- pinMode(trig,OUTPUT);
, I4 a& T* V1 ~, V- y - Serial.begin(9600);
/ z# y' B Z5 w - }
: R- x+ Y& m+ k# [: K - void loop()" ~ Z* q( m' i1 `/ p% P$ r( g4 V
- {
" S- g# c5 j7 \0 o - // put your main code here, to run repeatedly:
" O' Q. ^1 _! m! Y! f! J - d=Distance();
) @+ E) `: f$ _& y; z - //GDB调试状态下通过display d 即可查看其值
# d5 s4 N$ Q2 }! S& w3 i8 L0 n9 K - Serial.println(d);0 @$ D8 q7 A5 W! @
- //串口调试状态下查看其值
* h* r, i. D, f }- Y# _ - delay(1000);
* R A5 r: j' | - }
复制代码 Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。7 P: N: K: ]+ J n) L/ m2 x- {! @
7 o* b% j& C, i, q+ V+ p! i( q' EIDE当前支持的功能有:
; O q9 b* o1 S4 e8 q1 j: s$ T4 X- GDB调试
- 封装库下载安装
- 代码自动补全提示
- 中英文模式
- UTF-8\GBK编码格式
- 代码快速格式化
- SWD\串口程序下载&调试(已验证)
- DFU程序下载方式(待验证)
- USB HID程序下载方式(待验证)
- maple DFU程序下载方式(待验证)
- maple DFU2程序下载方式(待验证)
- MassStorage程序下载方式(待验证)
- 更多功能细节请前往进行了解
6 H( `/ V: E. |/ C# }: |6 e6 |. }
- m% O& ^/ `, O
. r) ^1 ?$ B& [8 L2 O已经支持的芯片&板型列表:! R+ G1 n1 q: [1 \# W9 `/ H
- Stduino UNO&Nano
- Nucleo 144 boards
- Nucleo 64 boards
- Nucleo 32 boards
- Discovery boards
- Eval boards
- STM32MP1 series coprocessor boards
- Generic STM32F0 boards
- Generic STM32F1 boards
- Generic STM32F3 boards
- Generic STM32F4 boards
- Generic STM32H7 boards
- Generic STM32L0 boards
- 3D printer boards
- LoRa boards
- Electronic Speed Controller boards
- Generic flight controllers
- Garatronics boards
- Midatronics boards
$ M; r4 _- p. s: g/ c, z
$ T- ?: p e" p7 U& h更多功能集成正在进行中~
6 A" T1 N+ N4 d |