OpenEdv-开源电子网

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

STM8L0852的AD转换问题

[复制链接]

33

主题

218

帖子

0

精华

高级会员

Rank: 4

积分
568
金钱
568
注册时间
2015-1-12
在线时间
75 小时
发表于 2015-10-8 11:52:05 | 显示全部楼层 |阅读模式
参照官方库例程写了一个简单的AD转换程序,但是程序运行后AD转换始终没开启。存放AD转换结果的寄存器中的数据是随机的  有知道原因的吗?主程序如下

void main(void)
{

   /* CLK configuration -------------------------------------------*/
  CLK_Config();


   /* ADC configuration -------------------------------------------*/
  ADC_Config();

 
  /* Initialize LEDs mounted on YANGAN board */
  GPIO_Init(AD_GPIO_PORT, AD_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);
  AD_Smoke_PowerOn();
  /* Init TIM2 to generate 1 ms time base update interrupt */
  //TimingDelay_Init();
  /* Enable Interrupts */
  //enableInterrupts();

  /* Infinite loop*/
  while (1)
  {
        uint16_t samp=0;
 
 
 
 while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);//等待采样完成
 
 
 
 ADC_ClearFlag(ADC1, ADC_FLAG_EOC);//清采样完成标志
  
 samp = ADC_GetConversionValue(ADC1);//读取采样数据

 ADC_SoftwareStartConv(ADC1);//重新启动采样

  }
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-10-8 23:16:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

33

主题

218

帖子

0

精华

高级会员

Rank: 4

积分
568
金钱
568
注册时间
2015-1-12
在线时间
75 小时
 楼主| 发表于 2015-10-10 10:32:22 | 显示全部楼层
原子大哥 也帮忙分析这个程序有问题吗   这是AD配置程序
static void ADC_Config(void)
{
  /* Initialize and configure ADC1 */
  ADC_Init(ADC1, ADC_ConversionMode_Continuous, ADC_Resolution_12Bit, ADC_Prescaler_2);
  ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
  //ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_384Cycles);
 
  //采集通道设为输入模式
  GPIO_Init(GPIOA, GPIO_Pin_5, GPIO_Mode_In_FL_No_IT);
  //启用内部参考电压
   ADC1->TRIGR[0] |= 0x10;

  /* Enable ADC1 */
  ADC1->CR1 |= 0x01; //第一次写1是从低功耗模式唤醒
  ADC_Cmd(ADC1, ENABLE);
  
/**********************************/  
  /* Enable ADC1 Channels 0 */
  //ADC_ChannelCmd(ADC1, ADC_Channel_0, ENABLE);  
   /* Enable ADC1 Channels 1 */
  ADC_ChannelCmd(ADC1, ADC_Channel_1, ENABLE);
   /* Enable ADC1 Channels 2 */
 // ADC_ChannelCmd(ADC1, ADC_Channel_2, ENABLE);
  
  /* Enable End of conversion ADC1 Interrupt */
 // ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);

  /* Start ADC1 Conversion using Software trigger*/
  ADC_SoftwareStartConv(ADC1);
/**********************************/  
  
  
  
}
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 19:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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