STM8S003 ADC转换过不去 莫名其妙(已解决)

2020-01-01 17:40发布

本帖最后由 粗人 于 2017-1-13 20:19 编辑

头回用STM8S003的ADC,开始转换后,死活过不去,求解~
正常转换完成后,会点亮LED

void ADC_Init(void)
{
    ADC_CSR |=4;    // 通道4
}

void ADC_GET(void)
{  
    ADC_CR1 |=0X01;    // 启动ADC
    while(!(ADC_CSR &0x80));    // 等待转换完成
    LED_ON; //ADC采样结束点亮
    //AD_Value =((((unsigned int)ADC_DRH)<<2)+ADC_DRL);    // 结果送入AD_Value缓冲区   
}

void LED_PORT_INIT(void)
{
     PC_DDR|=BIT5;
     PC_ODR&=~BIT5;
     PC_CR1|=BIT5;
     PC_CR2|=BIT5;
}

int main(void)

{
    asm("sim");
    LED_PORT_INIT();
    ADC_Init();
    asm("rim");
    while(1)
    {
        ADC_GET();
    }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
ADL
1楼-- · 2020-01-01 20:53
ADC_CR1 |=0X01;    // 启动ADC      后面加个延时试下,我之前好像是加了10us左右的延时。然后再启动一次转换 ADC_CR1 |=0X01;    // 启动ADC
feigoo
2楼-- · 2020-01-02 01:23
正好在看手册,截一段给你。

11.png (79.06 KB, 下载次数: 0)

下载附件

2017-1-13 19:54 上传

粗人
3楼-- · 2020-01-02 06:37
feigoo 发表于 2017-1-13 19:55
正好在看手册,截一段给你。

唉~惭愧惭愧~ 我也在啃手册,没注意这一段

按常理控制ADC电源应该在某个寄存器设置一下,这个真是...不按套路出牌

一周热门 更多>