利用HC-SR04超声波传感器测量到目标物体的距离,并利用GDB调试窗口显示。
% [3 C* ?9 s- \
V5 a3 G; w* j具体而言,在模块trig端输出一个至少10us的高电平信号,则该模块内部将循环发射8个40KHz频率的脉冲;若检测由回波信号,则会在echo端产生高电平信号。
7 F D' s! {; e, b+ n5 g+ p T三、实验器材:7 w9 i7 a: ?/ B) W2 y. O. x: f
1.stm32小蓝板一块
8 A- [1 g; W2 Z- @2 s3 O) @
6 X8 K6 b. }6 t H7 Z, F' e2.超声波传感器HC-SR04一个; N, w2 }' N' m( f( b. {
) N7 M7 E2 Y* E3.杜邦线4根。
3 b: P Q0 z0 H+ u" X7 R, h2 \ ]5 i; o1 g' }! `, c# m
4.stlink下载器一个+ C0 }! l7 A" a& r) J; N
$ B& R* @7 Z/ t" ]: y; |/ s
5.usb供电线一根
# T3 F' l2 {+ _! Z5 W7 ]/ S8 G- a8 O/ ?) T6 [
& f8 m W2 Z: y. [: L2 x" `
注意:该超声波传感器模块需工作在5.0V电压,所以仅仅有stlink下载器3.3v供电是不够的,需要再加上usb5.0v供电2 u; x# B1 i" Q
0 |4 \4 Z5 l; I2 c7 u- [ L' s
% ~ o/ n: ` ^; _0 K! U) B+ A1 B$ a; U
话不多说了,上代码:. a- N2 X/ N% R0 I% j9 {; I
- int trig =PA4;//Trig端
. N0 ]& `) b/ y; E' ~) o; m - int echo = PA5;//Echo端
/ F5 x" t" B9 F) a& s - float d=0.0;
* b# L, z- B; G* }/ q4 {, |; G - unsigned long time = 0;- ~1 A/ U5 k2 f, s3 u) }! C* `! P! h
- float Distance() {
1 B) W& P% ^2 b0 n - digitalWrite(trig,HIGH);" C! Q9 z( w3 X" ^( s/ }' f
- delayMicroseconds(15);//需要大于106 s; R( ~7 B k! U. z
- digitalWrite(trig,LOW);! |% S) x. g1 b M; O. n
- time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。, V# d/ v1 t) o' S) e3 ~' I
- float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来; |4 ~& w5 S9 c* J& X0 {
- Serial.println(S);% m2 W5 n# X6 g2 H; t
- time = 0;
! ^( |* m- @8 `& V L/ W7 i - return S;
2 P( h: c, v6 o5 T - }3 P0 q- h; l5 w: t- b0 {) B1 }* ? Q
- void setup()
2 d8 \) G+ [7 \ - {
% ?6 \" H/ T0 E& G3 U" A* ?/ \ - // put your setup code here, to run once:7 g2 c' z/ P9 @' h0 @8 x1 K
- pinMode(echo,INPUT);$ p& s+ _9 f9 A- C
- pinMode(trig,OUTPUT);
9 [. h: d: ?' |9 {/ |# C - Serial.begin(9600);% k) z) `% v2 n/ @6 r
- }6 U/ a8 d1 p( w0 C2 u
- void loop()
! W7 B' p, j/ O' f7 k8 j - {; q) h# a; s$ L" L
- // put your main code here, to run repeatedly:8 C3 r' q0 f; ^7 A' o
- d=Distance();3 B( ` b) i3 ?( k
- //GDB调试状态下通过display d 即可查看其值
8 t; t! j* Z e' Y( ~ _ - Serial.println(d);
- Z3 e& }3 Y6 i - //串口调试状态下查看其值
& b6 H' @5 o& g1 S9 u- p% F, X - delay(1000);1 U$ ^- y, k2 F) ~ R( c
- }
复制代码 Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
9 `1 t$ m. Q# J1 W7 ~3 i& a4 u* c% i$ f
IDE当前支持的功能有:" G J. R$ _$ O( C
- GDB调试
- 封装库下载安装
- 代码自动补全提示
- 中英文模式
- UTF-8\GBK编码格式
- 代码快速格式化
- SWD\串口程序下载&调试(已验证)
- DFU程序下载方式(待验证)
- USB HID程序下载方式(待验证)
- maple DFU程序下载方式(待验证)
- maple DFU2程序下载方式(待验证)
- MassStorage程序下载方式(待验证)
- 更多功能细节请前往进行了解# j6 u9 p7 u& `0 k6 b
2 J* ^- F9 ?2 ^# a# Z9 r
; Y! @ I, w6 J已经支持的芯片&板型列表:
& p6 ^* O: ]$ Q4 B* p2 Y# T- 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/ N9 x8 M" G! m9 {: U1 k9 k
6 A# l( o/ x9 Z2 A; k
更多功能集成正在进行中~
$ b0 x M" s, v4 A |