OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5485|回复: 3

STM32 超声波测距的问题

[复制链接]

8

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-4-27
在线时间
3 小时
发表于 2013-9-21 22:13:37 | 显示全部楼层 |阅读模式
求原子哥和各位大神帮帮忙
写的一个超声波测距程序,但是测不到距离,在void Ultra_Ranging()这个函数里面
        while(ECHO_RX) //陷入了死循环
{
delay_us(10);
j++;
                //printf("%d\r\n",j);
}

#define TRIG_TX PAout(0)// PA0发送
#define ECHO_RX PAin(2)// PA1返回
float Ultr_S=0; //距离

void Ultra_Init() //超声波模块初始化
{
RCC->APB2ENR|=1<<2;    //使能PORTA时钟
//PA0(TRIG)推挽输出
GPIOA->CRL&=0XFFFFFFF0; 
GPIOA->CRL|=0X00000003;//PA0 通用推挽输出模式50MHz  
//PA1(ECHO)浮空输入
GPIOA->CRL&=0XFFFFFF0F;
GPIOA->CRL|=0X00000040;//PA1 浮空输入模式01 输入模式[00]
GPIOA->ODR&=~(1<<1);      //PA1 下拉
}

void Start_Ultra()//启动超声波模块
{
TRIG_TX=1;
delay_us(13);
TRIG_TX=0;
}

void Ultra_Ranging() //超声测距
{
u32 j=0;
while(!ECHO_RX);
while(ECHO_RX)    //此处陷入死循环 跪求各位大神帮俺看看
{
delay_us(10);
j++;
                //printf("%d\r\n",j);
}
Ultr_S=(340/2)*j*10/1000000;
printf("%f\r\n",Ultr_S);  //发送给串口显示
}

int main(void)
{
  Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);     //延时初始化
uart_init(72,9600);  //串口初始化 
Ultra_Init();
    while(1)
{
printf("超声波测距");
Start_Ultra();
Ultra_Ranging();
}  
}

平凡的有点不正常
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-4-27
在线时间
3 小时
 楼主| 发表于 2013-9-21 22:43:53 | 显示全部楼层
平凡的有点不正常
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-21 22:46:13 | 显示全部楼层
说明ECHO_RX一直是1。
呵呵
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-4-27
在线时间
3 小时
 楼主| 发表于 2013-9-21 23:33:44 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
嗯,谢谢原子哥,是我自己搞错了...
#define ECHO_RX Ain(2)// A1返回    这里应该是PAin(1),写错了
平凡的有点不正常
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 18:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表