找回密码
 立即注册
×

00:00:00

您有一张0.1元限时体验卡,马上领取获得VIP尊享特权。

写了一个超声波测距程序,为什么测量不准确?

2026-4-9 21:57 来自 xbq202 发布 @ 综合讨论



大佬帮我看看,哪里出了问题,超声波测距测量不准确。感觉每次测量结果显示的数字是随机数。


/*******************************************************
*  STC32G12K128 超声波测距 + 4位共阴数码管显示
*  HC-SR04 + 内部IRC 33.1776MHz
******************************************************/

#include "STC32G.H"
#include <intrins.h>

#define SYSCLK          33177600     // 内部IRC频率
#define SOUND_SPEED     0.0343       // cm/us

/*---------------- 全局变量 ----------------*/
bit     echo_flag = 0;  // 回波标志
sbit   P3_3 = P3^3;
unsigned long time_us = 0;           // 回波高电平时间(us)
float   distance_cm = 0.0;           // 距离(cm)

/*---------------- 数码管段码(共阴) ----------------*/
unsigned char code seg_tab =
{
    0x3f, // 0
    0x06, // 1
    0x5b, // 2
    0x4f, // 3
    0x66, // 4
    0x6d, // 5
    0x7d, // 6
    0x07, // 7
    0x7f, // 8
    0x6f  // 9
};

/*---------------- 延时函数 ----------------*/
void DelayMs(unsigned int ms)
{
    unsigned int i, j;
    for(i = 0; i < ms;
  • 最近查阅:

免责声明:

本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-1 07:47 , Processed in 0.077678 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

返回顶部