利用HC-SR04超声波传感器测量到目标物体的距离,并利用GDB调试窗口显示。4 X* i& y P( F' K3 e5 l) l- a
5 A N! ^* u' p! j具体而言,在模块trig端输出一个至少10us的高电平信号,则该模块内部将循环发射8个40KHz频率的脉冲;若检测由回波信号,则会在echo端产生高电平信号。
! }9 L( H% ]2 P4 t- `' E三、实验器材:( b# a. i" \4 u, f' |, m
1.stm32小蓝板一块9 y8 b {: v q- C
+ g0 U4 e! z, x
2.超声波传感器HC-SR04一个 A# x s- u0 H2 {+ R( @+ Y
7 u6 r- V* f) I" t# F
3.杜邦线4根。& d4 g3 v r5 W. d
4 A! h$ u, u, |, B0 ?! I/ a8 N4.stlink下载器一个
# V! s0 o/ g! u1 L3 F
Q! o" ]+ c N3 {1 n! Q5.usb供电线一根 n" V, s7 j" H" @2 q
& E& ?, Y7 k$ K* h4 `1 u; o# \6 `. n3 x# ]& ~: G$ H( y1 c- |3 B' v
注意:该超声波传感器模块需工作在5.0V电压,所以仅仅有stlink下载器3.3v供电是不够的,需要再加上usb5.0v供电
9 o* v' U* e1 L, @- s/ Z4 I9 f5 B" T# @' q% k. c1 A' m. d
) Q( k# g- b& m5 |' ?0 A话不多说了,上代码:& K, f# H& B" @+ K0 g r
- int trig =PA4;//Trig端
: d0 v! f. A3 T0 y g - int echo = PA5;//Echo端
/ m9 k W0 ^( O7 S* ~# g - float d=0.0;
! s d4 T3 y) z0 N( X- e - unsigned long time = 0;" z+ K2 M3 ?/ x7 F- e. g _; p% i
- float Distance() {: y0 b0 Y; O* Q! e
- digitalWrite(trig,HIGH);
- @7 K+ A; ]0 F, G4 s' u8 R4 l3 Q2 b - delayMicroseconds(15);//需要大于104 ^* g- ~2 N! W& e6 r. K
- digitalWrite(trig,LOW);
3 Y: R. V& [# s - time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。
7 K+ I$ V9 a7 U - float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来
" I/ p: [) R1 r% M5 h: l% q0 q - Serial.println(S);/ D/ p3 o9 o4 X( ^ M
- time = 0;& d( x% X7 H& S
- return S;. ?6 D- i: g1 n' D! P- n- A
- }
3 g! r# R! Z0 ]+ U0 ~/ n - void setup()7 J! D! n# U" A d5 K2 d. y
- {
- B" q6 E7 N" r4 s7 o - // put your setup code here, to run once:* @& N1 Q( P3 n( }
- pinMode(echo,INPUT);/ L3 ?9 U7 J' G) b( f5 S6 T
- pinMode(trig,OUTPUT);0 i0 e5 w' D+ T: C
- Serial.begin(9600);
8 [6 _, `& Z3 S, b6 h - }
+ S) q# u8 _- A/ l - void loop()5 W( C, w$ f" V7 Z) n; n7 f* I
- {
; }1 Y9 c9 [- |9 c H - // put your main code here, to run repeatedly:( b7 n2 D0 r# n
- d=Distance();9 ?0 _( Y7 @ ^
- //GDB调试状态下通过display d 即可查看其值$ @9 |- o0 a' p
- Serial.println(d); |5 W1 f: Q7 H9 t- d, q3 `
- //串口调试状态下查看其值) r( v( z9 K: { x$ y
- delay(1000);0 { X! Q8 b$ B! q- i
- }
复制代码 Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
8 s- ?% W. C" \4 f, ~, P
" ?" o5 m9 D! f3 E& F PIDE当前支持的功能有:' U' @$ Y2 ^5 Z% d9 ?( _: P4 X! t6 S
- GDB调试
- 封装库下载安装
- 代码自动补全提示
- 中英文模式
- UTF-8\GBK编码格式
- 代码快速格式化
- SWD\串口程序下载&调试(已验证)
- DFU程序下载方式(待验证)
- USB HID程序下载方式(待验证)
- maple DFU程序下载方式(待验证)
- maple DFU2程序下载方式(待验证)
- MassStorage程序下载方式(待验证)
- 更多功能细节请前往进行了解
: f0 d0 n. j3 i% ?3 N$ P3 ~4 n / ?9 k: |% G. x* B
/ q7 n6 j3 y) @* ]已经支持的芯片&板型列表:
% J& u9 I* t( p# k( w- 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 boards1 _% R- [1 ]# {$ X$ v" v
* n7 A0 n8 U2 }& J更多功能集成正在进行中~& h# [; l8 K- m
|