6239|8

45

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

使用STM8S105K6的ADC1出现问题 [复制链接]

在使用STM8S105K6的ADC1的通道一进行AD转换时,转换出来的值不变且恒为2049,而10位AD最多只能到1024 ,程序反复检查也没有发现bug,我是开启了转换完成中断,在中断里面进行读取,ADC1的配置程序如下:
  1. void ADC_Config()
  2. {
  3.   /*  Init GPIO for ADC1 */
  4.   GPIO_Init(GPIOB, GPIO_PIN_1, GPIO_MODE_IN_FL_NO_IT);
  5.   GPIO_Init(GPIOB, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT);
  6.   
  7.   /* De-Init ADC peripheral*/
  8.   ADC1_DeInit();

  9.   /* Init ADC1 peripheral */
  10.   ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_1, ADC1_PRESSEL_FCPU_D18, \
  11.             ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL1,\
  12.             DISABLE);

  • ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE,
  • ADC1_CHANNEL_1,
  •                         ADC1_ALIGN_RIGHT);

  • /* Enable EOC interrupt */
  •   ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE);

  •   /* Enable general interrupts */  
  •   enableInterrupts();
  •    
  •   /*Start Conversion */
  •   ADC1_Cmd(ENABLE);
  •   ADC1_StartConversion();
  • }


  • 复制代码
    转换值读出之后通过串口打印出来转换值的读取程序如下:
             /* start up converting every 500ms */      
    INTERRUPT_HANDLER(ADC1_IRQHandler, 22)
      {
        /* In order to detect unexpected events during development,
            it is recommended to set a breakpoint on the following instruction.
         */
             /* Debug code */
             if(ADC1_GetFlagStatus(ADC1_FLAG_EOC) == 0x80)
             {
                 printf("ADC CH1 VALUE IS:%d\n\r",ADC1_GetConversionValue());
    //             printf("%d\n\r",ADC1_AIN1_Value);
                
                 ADC1_ClearITPendingBit(ADC1_IT_EOC);           
               
             }
    }
    此帖出自stm32/stm8论坛

    最新回复

    nmg
    你是没试过5楼给出的解决方案?  详情 回复 发表于 2016-2-24 10:14
    点赞 关注
     

    回复
    举报

    1632

    帖子

    4

    TA的资源

    纯净的硅(高级)

    沙发
     
    STM8的AD采样还没用过,不是很熟悉。
    此帖出自stm32/stm8论坛
     
    个人签名科技改变生活
     

    回复

    1025

    帖子

    1

    TA的资源

    一粒金砂(高级)

    板凳
     
    AD的时钟打开了吗?
    此帖出自stm32/stm8论坛

    点评

    好像STM8不像STM32那样,还单独开关时钟  详情 回复 发表于 2015-12-10 19:15
     
     

    回复

    45

    帖子

    0

    TA的资源

    一粒金砂(中级)

    4
     
    wudianjun2001 发表于 2015-12-8 14:03
    AD的时钟打开了吗?

    好像STM8不像STM32那样,还单独开关时钟
    此帖出自stm32/stm8论坛

    点评

    有几个外设时钟寄存器的,把要用的外设时钟都要打开  详情 回复 发表于 2015-12-11 08:09
     
     
     

    回复

    1025

    帖子

    1

    TA的资源

    一粒金砂(高级)

    5
     
    zhoulei88 发表于 2015-12-10 19:15
    好像STM8不像STM32那样,还单独开关时钟

    有几个外设时钟寄存器的,把要用的外设时钟都要打开
    此帖出自stm32/stm8论坛

    点评

    STM8商上电之后默认所有外设时钟都是打开的,所以不需要再去开时钟,官网例程上面也没有开时钟这些语句  详情 回复 发表于 2015-12-12 11:24
     
     
     

    回复

    45

    帖子

    0

    TA的资源

    一粒金砂(中级)

    6
     
    wudianjun2001 发表于 2015-12-11 08:09
    有几个外设时钟寄存器的,把要用的外设时钟都要打开

    STM8商上电之后默认所有外设时钟都是打开的,所以不需要再去开时钟,官网例程上面也没有开时钟这些语句
    此帖出自stm32/stm8论坛
     
     
     

    回复

    9

    帖子

    0

    TA的资源

    一粒金砂(中级)

    7
     
    楼主问题解决了吗?
    此帖出自stm32/stm8论坛

    点评

    nmg
    你是没试过5楼给出的解决方案?  详情 回复 发表于 2016-2-24 10:14
     
     
     

    回复

    9

    帖子

    0

    TA的资源

    一粒金砂(中级)

    8
     
    楼主问题解决了吗?
    此帖出自stm32/stm8论坛
     
     
     

    回复

    5260

    帖子

    239

    TA的资源

    管理员

    9
     
    侠行江湖 发表于 2016-2-23 21:56
    楼主问题解决了吗?

    你是没试过5楼给出的解决方案?
    此帖出自stm32/stm8论坛
    加EE小助手好友,
    入技术交流群
    EE服务号
    精彩活动e手掌握
    EE订阅号
    热门资讯e网打尽
    聚焦汽车电子软硬件开发
    认真关注技术本身
     
     
     

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

    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表