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

NucleoF042 超声波HC-SR04

[复制链接]
leo121_3006061 发布时间:2017-10-3 21:00
这几天闲来无事用扳子跑了一下超声波测试,效果还不错,在mbed平台下,代码比较简单(代码来自于网络). h( A$ O6 ?. S( s

! _& b5 J7 |- c9 k/ n2 T) e
  1. #include "mbed.h"/ f6 Q/ _) @. N( {$ @# m( Q5 H

  2. 5 e2 r6 {. q) C" N  k" r  h

  3. 1 d$ r5 D/ o9 Q
  4. 9 I$ O5 }$ r  L! g) P* I
  5. Ticker tick;
    % Y( ?- M1 J: D* c' `
  6. Timer timer;
    0 |( R. N4 D( g2 e  E  V
  7. RawSerial prtOut(USBTX, USBRX);//TX,RX# I0 X4 F8 q5 S& T) C2 g3 Q9 P
  8. DigitalOut plus27(D7);; y9 }' s" L7 \2 x; w; ?
  9. DigitalOut myled0(LED1);
    8 Z/ V5 g$ V" ^$ ^, Z
  10. InterruptIn plusIn28(D8);9 k' X5 [! m# l  W1 m9 l0 c$ k
  11. * D: L9 J. |( J# c$ `
  12. //Define Avarible& `6 ^. t1 |" J9 a
  13. int32_t js;% G4 Y4 q7 Z' G- n$ B0 g
  14. float all,begin,end;
    ! z, o, g+ @' {) N% [7 ^# Q$ B; \
  15. , r  v8 C# `. L2 M
  16. void tipInt(void){plus27=1;wait(0.000008f);plus27=0;}: y: T& I7 z# r9 X( C. e
  17. void PlusIn28(void){  ]( t! M9 Z. M0 g: u$ ^: {
  18. if(D8){4 R" A7 k# u" }
  19.   timer.start();
      z5 i5 X" r0 `# Z2 S8 }
  20.   begin=timer.read_us();& Y" h; g' ?8 {# f: k' I8 l
  21. 3 L% ]3 }: e# o! t% |, a/ `* x
  22. }  Q' L/ s( |6 G/ A
  23. while(plusIn28){}* ^+ G& m# D$ g1 ^! h% q8 x5 |
  24. end=timer.read_us();
    - A/ p9 [, k' f8 ], x; X
  25. }
    / E9 [1 ]( z; U* |; }
  26. int main(){+ E* f( ~/ u. I& y
  27. prtOut.baud(115200);0 m: W: a2 P! c4 z( }
  28. myled0.write(0);
    9 c& ]; F6 Q) Z  B! d
  29. tick.attach(&tipInt,0.1f);
      i' w0 k* c0 G5 l0 z. Y+ }
  30. plusIn28.rise(&PlusIn28);
    : r5 ?3 R5 t4 H. w- _  U/ s
  31. while(true){
    " _5 H' F8 c  D$ _
  32.   js++;( N0 T$ a; t$ N6 H$ C
  33.   myled0.write(1);. }3 \5 m4 B4 T- k3 ^
  34.   all=(end-begin)/57;4 G5 z( ]1 e1 k2 J% ^
  35.   prtOut.printf("Begin=%6.2f end=%6.2f all=%6.2f\r\n",begin,end,all);
    7 d4 g" k5 n% N- ]+ a9 n
  36. }
    & M: ~( o3 D& `- ?2 g3 o
  37. }
复制代码
上个串口助手显示的图,精度还算可以的
. M2 L: y& B5 e! Y sr04.jpg 5 E% l* B# e( q8 `+ U" i6 F! Z
6 B- G" f  D9 C* s( n

- |, W- p* t6 B" n
收藏 评论9 发布时间:2017-10-3 21:00

举报

9个回答
epochal 回答时间:2017-10-4 08:31:06
谢谢分享!
MrJiu 回答时间:2017-10-5 10:15:01
C++的啊。。。。
asmhai 回答时间:2017-10-5 11:40:35
谢谢楼主的分享!
asmhai 回答时间:2017-10-5 11:42:06
mbed开放平台好啊,
leo121_3006061 回答时间:2017-10-5 11:47:10
asmhai 发表于 2017-10-5 11:42
  U" A/ ^7 e$ `mbed开放平台好啊,
! c1 ^1 X& M8 `+ |( Q
平台是不错,最大的问题是,这个小板子的在这个平台只有20K可用的(尽管说是32k),所以写一点还可以,再加个模块恐怕就超了。
asmhai 回答时间:2017-10-5 13:05:45
有20K可用,是少了点,
斜阳 回答时间:2017-10-11 13:15:10
这个串口助手可分享么??
leo121_3006061 回答时间:2017-10-12 20:58:15
斜阳__ 发表于 2017-10-11 13:15
# E! ]/ h1 A; E" y9 r. P这个串口助手可分享么??

3 s; |- o& b3 `windows10商店里直接查这个名字就可以安装
simin666 回答时间:2018-8-7 02:32:18
谢谢分享!

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版