Stm32 Проблемы С Adc (Ацп)

5-05-2014, 12:28 От: admin Посмотрели: 677
Здравствуйте, подскажите пожалуйста где ошибка. Была написана простая программа для STM32F4DISCOVERY использующая АЦП для измерений, был подключён  потенциометр на 10kOm средней точкой к выводу PA1Stm32 Проблемы С  Adc (Ацп) .
#include <stm32f4xx.h>
#include <stm32f4xx_rcc.h>
#include <stm32f4xx_gpio.h>
#include <stm32f4xx_adc.h>
int ReadADC1()
{
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_3Cycles);
ADC_SoftwareStartConv(ADC1);
while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
return ADC_GetConversionValue(ADC1);
}
void main(void)
{
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
GPIO_InitTypeDef GPIO_STR;
ADC_InitTypeDef ADC_STR;
ADC_CommonInitTypeDef ADC_CSTR;
GPIO_STR.GPIO_Mode=GPIO_Mode_AN;
GPIO_STR.GPIO_Pin=GPIO_Pin_1;

GPIO_Init(GPIOA,&GPIO_STR);

ADC_DeInit();
ADC_CSTR.ADC_Mode=ADC_Mode_Independent;
ADC_CSTR.ADC_Prescaler=ADC_Prescaler_Div2;

ADC_CommonInit(&ADC_CSTR);

ADC_STR.ADC_ContinuousConvMode=DISABLE;
ADC_STR.ADC_DataAlign=ADC_DataAlign_Right;
ADC_STR.ADC_ExternalTrigConv=ADC_ExternalTrigConvEdge_None;
//ADC_STR.ADC_NbrOfConversion=ADC_N
ADC_STR.ADC_Resolution=ADC_Resolution_12b;
ADC_STR.ADC_ScanConvMode=DISABLE;

ADC_Init(ADC1,&ADC_STR);

ADC_Cmd(ADC1,ENABLE);

int adc_temp=0,sum=0;

while(1)
{
for (time = 0; time <= 1000; time++)
{
delay(300);
adc_temp=ReadADC1();
sum+=adc_temp;
}
sum/=1000;
}
}
.  Сначала всё замечательно работало но спустя какое-то время без каких-либо изменений в коде и схеме  перестала работать. Как выяснилось позже происходит зацикливание на одной из строк кода
 while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
. В одно включение программа работает без сбоев, ведутся нормальные замеры, в следующий же раз происходит зацикливание, даже без изменения кода. Даже при удалении участка кода  где происходит зацикливание (что насколько я понимаю в корне не верно) приходят неверные данные. Прошу подскажите всё-ли верно в инициализации и использовании АЦП и что может приводить к таким проблемам?
Раздел: STM32

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Stm32 Проблемы С Adc (Ацп) все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930