OpenEdv-开源电子网

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

我这个超声波测距会死在while(!aa),大家帮我看看

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2011-12-4
在线时间
0 小时
发表于 2011-12-9 20:40:10 | 显示全部楼层 |阅读模式

void GPIO_Configuration(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;
  
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO , ENABLE);
 


 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOB, &GPIO_InitStructure);
 
 GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 ;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
 //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOB, &GPIO_InitStructure);
}
void chaoshengbo()
{    
 aa=GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6);
 while(!aa)
 TIM_Cmd(TIM2, ENABLE); 
 aa=GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6);
 while(aa)
 TIM_Cmd(TIM2, DISABLE);     //RE回响信号
}
void csPZ()
{
 GPIO_SetBits(GPIOB, GPIO_Pin_5);
 delay_ms(10);
 GPIO_ResetBits(GPIOB, GPIO_Pin_5); //TX  触发信号
}
void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
 
#ifdef  VECT_TAB_RAM 
  /* Set the Vector Table base location at 0x20000000 */
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);  
#endif

  /* Configure one bit for preemption priority */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
 
  /* Enable the EXTI9_5 Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel =TIM2_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}
void Timer_Configuration(void)
{
 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
 TIM_DeInit(TIM2);
 TIM_TimeBaseStructure.TIM_Period = 9000;
 TIM_TimeBaseStructure.TIM_Prescaler = 8000;
 TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);

 TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);
 TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
发表于 2011-12-10 00:17:27 | 显示全部楼层
建议LZ先学好C语言基础吧
回复 支持 反对

使用道具 举报

71

主题

467

帖子

0

精华

高级会员

Rank: 4

积分
800
金钱
800
注册时间
2011-11-18
在线时间
5 小时
发表于 2011-12-10 03:01:04 | 显示全部楼层
哇噢,你买的那个模块是不是给一个10微秒的电平后它返回一个高电平的那种呀?对反射面积有点要求.自己做一个更好玩.其实有很多种状态的.自己琢磨个算法嘛.

while(aa)
 TIM_Cmd(TIM2, DISABLE);  

你的aa==1进去后 一直都会是1呀,因为你这个while里边没有改变aa的值的指令.它当然死在里头了.

在写法上我怀疑这个程序不是楼主写的.拿来改的吧.哈哈.
我的工作就是天天在玩
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2011-12-4
在线时间
0 小时
 楼主| 发表于 2011-12-10 17:57:18 | 显示全部楼层
我开始学的,程序是从51的改过来的,我的void csPZ()
{
 GPIO_SetBits(GPIOB, GPIO_Pin_5);
 delay_ms(10);
 GPIO_ResetBits(GPIOB, GPIO_Pin_5); //TX  触发信号
}
是不是没有触发超声波,我买的超声波模块上说的给个10us秒的高电平啊 ,而且在51上面是可以的,不懂,
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-12-10 19:40:54 | 显示全部楼层
回复【5楼】liouzhuo12:
---------------------------------
简单,拿杜邦线直接给脉冲,看看能否反映.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2011-12-4
在线时间
0 小时
 楼主| 发表于 2011-12-11 19:49:21 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
就是没的反应,
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-12-11 20:44:02 | 显示全部楼层
回复【7楼】liouzhuo12:
---------------------------------
那你代码有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 16:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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