你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Stduino IDE stm32 最小系统 小蓝板 驱动超声波传感器(四)

[复制链接]
s554585 发布时间:2020-7-31 18:28
利用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
  1. int trig =PA4;//Trig端' S: F! B6 \% D# B# [
  2. int echo = PA5;//Echo端
    9 A, m' k( o8 V8 _4 X
  3. float d=0.0;4 A7 h# G9 Y+ C; c- K
  4. unsigned long time = 0;
    7 C2 {& ]2 y7 }( f
  5. float Distance() {' s* ]1 I( _4 s# z, }$ a4 Z2 h
  6.     digitalWrite(trig,HIGH);9 F" x8 s) J( ^% E3 p
  7.     delayMicroseconds(15);//需要大于105 M# H, [2 O& B6 X2 C7 \( \
  8.     digitalWrite(trig,LOW);
    3 p) k- a* f8 E+ r/ ]
  9.     time = pulseIn(echo,HIGH);//高电平传回超声波从发射到接收所经过的时间。- k: Z* q; U4 r- \. Y
  10.     float S = time/58.00; //使用浮点计算出距离,单位为cm,time除以58是由速度乘以时间换算而来
    ) p2 [9 c( {% Y8 U0 W) t+ ^! ^1 R
  11.     Serial.println(S);
    8 m. a% ?( a# \6 B  }# J& N( w" m
  12.     time = 0;' H, T- d/ S1 d3 L8 c
  13.     return S;
    ( Y- q( [( f& _( o& Y( C$ q
  14. }
    - ]' G  P  H! A
  15. void setup(). {7 p) A) s% b8 `& M, |
  16. {5 ~$ m  Z3 Z/ B( v! u; I
  17. // put your setup code here, to run once:
    & W# }% w& k. E' I
  18.     pinMode(echo,INPUT);, o; L& g7 i. ]
  19.     pinMode(trig,OUTPUT);
    , I4 a& T* V1 ~, V- y
  20.     Serial.begin(9600);
    / z# y' B  Z5 w
  21. }
    : R- x+ Y& m+ k# [: K
  22. void loop()" ~  Z* q( m' i1 `/ p% P$ r( g4 V
  23. {
    " S- g# c5 j7 \0 o
  24. // put your main code here, to run repeatedly:
    " O' Q. ^1 _! m! Y! f! J
  25.     d=Distance();
    ) @+ E) `: f$ _& y; z
  26. //GDB调试状态下通过display d 即可查看其值
    # d5 s4 N$ Q2 }! S& w3 i8 L0 n9 K
  27.     Serial.println(d);0 @$ D8 q7 A5 W! @
  28. //串口调试状态下查看其值
    * h* r, i. D, f  }- Y# _
  29.     delay(1000);
    * R  A5 r: j' |
  30. }
复制代码
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

超声波测距模块距离测量值

超声波测距模块距离测量值
收藏 评论0 发布时间:2020-7-31 18:28

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版