[STM8] STM8S903 为什么转化不出来啊!!!

[复制链接]
1776|6
 楼主| win2000_li 发表于 2013-10-11 22:39 | 显示全部楼层 |阅读模式

如下是我的程序,结果是ADC_CSR的EOC位已置位,就是读不出来。
程序死在红色的地方,这是为什么呢??
是我哪里搞错了!!!

void main(void)
{
      PD5,PD6初始化为输入;
      ADC_Config();
      while (1)
     {
         AD6 = ADC_GetValue(ADC1_CHANNEL_6);
     }
}



ADC1_Flag_TypeDef ADC1_St;

void ADC_Config(void)
{
        ADC1_DeInit();
        ADC1_PrescalerConfig(ADC1_PRESSEL_FCPU_D4);
        ADC1_ScanModeCmd(ENABLE);
        ADC1_Cmd(ENABLE);
}


INT16U ADC_GetValue(ADC1_Channel_TypeDef ADC_Channel)
{
        INT16U TempValue;
        
        ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, ADC_Channel, ADC1_ALIGN_LEFT);
        do
        {
                ADC1_St = ADC1_GetFlagStatus(ADC1_FLAG_EOC);
        }
        while (SET == ADC1_St);
        
        ADC1_ClearFlag(ADC1_FLAG_EOC);
        
        TempValue = ADC1_GetConversionValue();

        return (TempValue);
}
 楼主| win2000_li 发表于 2013-10-11 23:12 | 显示全部楼层
程序为死在这里,这是为什么呢???

为什么库函数不能执行呢??
1.JPG
 楼主| win2000_li 发表于 2013-10-12 14:59 | 显示全部楼层
自已顶起啊!!!!
 楼主| win2000_li 发表于 2013-10-13 08:52 | 显示全部楼层
哪位兄弟遇到过这种情况,帮我解答一下!
 楼主| win2000_li 发表于 2013-10-13 10:38 | 显示全部楼层
我把程序里的中断enableInterrupts();代码屏蔽掉,程序可以正常转化了。为什么和中断有关呢???
 楼主| win2000_li 发表于 2013-10-13 10:47 | 显示全部楼层
终于找到问题了,是IO中断打开造成的了。
youluo235 发表于 2013-10-13 16:51 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

142

主题

718

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部