打印

求教 while循环

[复制链接]
1671|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pinghpu|  楼主 | 2013-4-16 18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      do
      {
        id=ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);//转换结束标志位
      }while(!id);

经常在这个while里挑不出来,会是什么原因呢
沙发
LDTEST| | 2013-4-17 09:55 | 只看该作者
检查下ADC配置是否正确

使用特权

评论回复
板凳
readdai| | 2013-4-17 11:05 | 只看该作者
先按楼上排查,然后类似循环最好做个超时自动退出功能。

使用特权

评论回复
地板
pinghpu|  楼主 | 2013-4-18 09:45 | 只看该作者
LDTEST 发表于 2013-4-17 09:55
检查下ADC配置是否正确

ADC的时钟频率默认值是多少?
对adc采样频率的设置怎么计算呢?

使用特权

评论回复
5
pinghpu|  楼主 | 2013-4-18 11:05 | 只看该作者
LDTEST 发表于 2013-4-17 09:55
检查下ADC配置是否正确

  ADC_DeInit(ADC1);//将外设ADC1 的全部寄存器重设为缺省值
  
  ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;//独立工作模式
  ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;//数据右对齐
  ADC_InitStruct.ADC_ContinuousConvMode=DISABLE;//不是连续转化
  ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//触发方式为软件触发
  ADC_InitStruct.ADC_NbrOfChannel=1;//选择ADC通道数目为1
  ADC_InitStruct.ADC_ScanConvMode=DISABLE;//单通道转换
  
  ADC_Init(ADC1,&ADC_InitStruct);
  
  ADC_RegularChannelConfig(ADC1,ADC_Channel_1,1,ADC_SampleTime_1Cycles5);//设置ADC的转换通道和采样时间
  RCC_ADCCLKConfig(RCC_PCLK2_Div6);
  
  ADC_Cmd(ADC1,ENABLE);//重置指定的ADC1校准寄存器
  
  ADC_ResetCalibration(ADC1);//获取ADC1充值校准寄存器的状态,直到校准寄存器重设完成

使用特权

评论回复
6
pinghpu|  楼主 | 2013-4-18 15:00 | 只看该作者
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
找到原因了,没有打卡adc时钟。

使用特权

评论回复
7
cjhk| | 2013-4-18 18:57 | 只看该作者
问题解决就好   还是21ic好  多逛21ic  没有解决不了的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

30

帖子

0

粉丝