找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2753|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

STM32L151單片機(jī)ADC在喚醒后無(wú)法正常運(yùn)行 卡死在while

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 5 黑幣 回復(fù)本帖可獲得 5 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:621862 發(fā)表于 2020-12-24 13:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
void  Adc_Init(void)
{         
        
               
                GPIO_InitTypeDef GPIO_InitStructure;
                ADC_InitTypeDef ADC_InitStructure;
                /*----------------- ADC1 configuration with DMA enabled --------------------*/
    /* Enable the HSI oscillator */
    RCC_HSICmd(ENABLE);

    /* Enable GPIOB clock */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
    /* Configure PB.0 (ADC Channe8) in analog mode */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    /* Check that HSI oscillator is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);

    /* Enable ADC1 clock */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
    /* ADC1 configuration */
    ADC_InitStructure.ADC_ScanConvMode = ENABLE;
    ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
    ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConvEdge_None;
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
    ADC_InitStructure.ADC_NbrOfConversion = 1;
    ADC_Init(ADC1, &ADC_InitStructure);
    /* ADC1 regular channel18 configuration */
    ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_4Cycles);   
    /* Enable ADC1 */
                ADC_TempSensorVrefintCmd(ENABLE);
    ADC_Cmd(ADC1, ENABLE);
               
                /* Wait until the ADC1 is ready */
    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_ADONS) == RESET)
    {
                        Uart1_SendStr(".");
                        delay_ms(1000);
    }   
                ADC_SoftwareStartConv(ADC1);
               
}
u16 Get_Adc(u8 ch)   
{
        
          //設(shè)置指定ADC的規(guī)則組通道,一個(gè)序列,采樣時(shí)間
        ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_96Cycles );        //ADC1,ADC通道,采樣時(shí)間為239.5周期                                      
  delay_ms(50);
        ADC_SoftwareStartConv(ADC1);                //使能指定的ADC1的軟件轉(zhuǎn)換啟動(dòng)功能        
         
        while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )){
        

        }
            ADC_ClearFlag (ADC1,ADC_FLAG_EOC);   
        
        
        return ADC_GetConversionValue(ADC1);        //返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果
}
  卡死在while 這里了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:540513 發(fā)表于 2020-12-29 13:35 | 只看該作者
初始化觸發(fā)方式目前使用的是外部觸發(fā),可以更換為軟件觸發(fā)試試
回復(fù)

使用道具 舉報(bào)

板凳
ID:310808 發(fā)表于 2023-8-8 15:50 | 只看該作者
時(shí)鐘和引腳不對(duì)應(yīng)
回復(fù)

使用道具 舉報(bào)

地板
ID:1063563 發(fā)表于 2023-8-10 08:09 | 只看該作者
是不是在等待模擬量的標(biāo)志位,才卡在哪里等待。
回復(fù)

使用道具 舉報(bào)

5#
ID:372579 發(fā)表于 2023-8-12 09:09 | 只看該作者
最好仿真下看看
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表