Помощь начинающему

Пишу программу на STM32F407VG. Суть следующая. С генератора подается какое то напряжение, АЦП его преобразует и НА плате зажигается диод. НЕ работает непонятно почему. Помогите кто чем может. Укажите на ошибки.
Код программы:
/*******************************************************************/
#include "stm32f4xx.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_adc.h"
#include "stm32f4xx_exti.h"
#include "stm32f4xx_dma.h"
#include "stm32f4xx_usart.h"
#include "misc.h"
/*******************************************************************/

void Init(Void)
{
	GPIO_InitTypeDef gpioE;
	GPIO_InitTypeDef gpio;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
	RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1,ENABLE);
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
	

	gpio.GPIO_Pin = GPIO_Pin_12;
	gpio.GPIO_Mode = GPIO_Mode_OUT;
	gpio.GPIO_OType = GPIO_OType_PP;
	gpio.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOC, &gpio);
	
	
	gpioE.GPIO_Pin = GPIO_Pin_11;
	gpioE.GPIO_Mode = GPIO_Mode_AF;
	gpioE.GPIO_OType = GPIO_OType_PP;
	gpioE.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOE, &gpioE);
}
void ADC_init(void)
{
 RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;                             

        ADC1->SQR3 = 6;   
				ADC1->CR2 |= ADC_CR2_ADON; 	
        ADC1->CR2 |= ADC_CR2_CONT;
        ADC1->CR2 |= ADC_CR2_EXTSEL_1|ADC_CR2_EXTSEL_2;
				ADC1->CR1 |= ADC_CR1_EOCIE;
}
void ADC1_2_IRQHandler (void)
{
  if (ADC1->SR & ADC_SR_STRT)
	{
		GPIO_WriteBit(GPIOC, GPIO_Pin_12, Bit_SET);
  }
}
int main()
{
Init();
ADC_init();	
	
}
  • -5
  • 10 ноября 2013, 20:52
  • Foxek

Комментарии (24)

RSS свернуть / развернуть
На форум с вопросами…
+3
Может я ошибаюсь, но вы тактирование МК забыли включить.
0
Ага. Не знаю, правильно ли выбран вывод, но, вроде, для работы с АЦП, нужна ещё конфигурация вывода как аналог, а не альтернативная функция. Флаг ADC_SR_STRT означает вовсе не конец преобразования. Подозреваю, проблем тут ещё много и кроме этих — надо переделывать всё с самого начала и с пониманием. Этот код принципиально работать не будет.

Автору: сделайте все эти запчасти по-отдельности и проверьте их работу в отладчике, а потом уже пробуйте соединять.
0
Только не тактирование МК, а тактирование АЦП. Тактирование МК по умолчанию есть в любом случае.
0
В конце стоит добавить вечный цикл, кмк.
+1
  • avatar
  • ACE
  • 10 ноября 2013, 22:12
На форум с вопросами…

Зря Вы так. Еще раз повторюсь — в сообществе не так много новых статей и активных участников, чтобы насколько «разбрасываться харчами». Да и «комментарии рулят»…

По сути вопроса:
ACE прав касательно заклинивания программы.

Плюс — нет настройки NVIC (я не работал  конкретно с  STM F4, но подозреваю, что, по аналогии с другими  STM32, для работы с прерываниями нужно сконфигурировать соответствующий канал NVIC).
+3
А не задумывались почему? :)
0
Ну, не знаю, каково ответа Вы от меня ждете…

ИМХО, в идеале, должно было быть: «больше людей» → «больше контента» → «больше контента — привлечение новых людей» → «больше людей» → «больше контента» и т. д.

Но, по моим наблюдением, как-то все застряло. Видать, не набрали ту критическую массу, когда система становится стабильной и имеет тенденцию к росту.
0
ИМХО, многие просто стесняются писать в Сообщество. Вопросы задавать здесь, вроде бы, неуместно, комментировать по делу,- не хватает опыта и знаний. А с вопросами чаще всего отправляют на форум. Активные участники Сообщества, видно, чрезвычайно заняты, им некогда писать новые статьи. Нет мотивации, наверное. Вот и стало немного скучно…
+2
ИМХО, многие просто стесняются писать в Сообщество. Вопросы задавать здесь, вроде бы, неуместно, комментировать по делу,- не хватает опыта и знаний
Ну вот, ИМХО, и зря. Вокруг сообщества создался некий ореол «избранности» — дескать хорошие статьи — в сообщество, а «плохие» — на форум.

Я не вижу принципиальной разницы между форумом и сообществом. Просто, в сообществе другой движок (LiveSteet) для визуализации информации (который, для меня, более удобен). Вот и вся разница.
+2
Я не вижу принципиальной разницы между форумом и сообществом.
сообщество создано для информирования общества
форум создан для решения вопросов и от движка это не зависит

кто-то подписан по рсс и получает новые статьи, а там унылый вопрос
Вокруг сообщества создался некий ореол «избранности»
да нету никакого ореола, это на хабре надо инвайт получить, чтобы писать, а тут любой может написать статью, но не вопрос
0
сообщество создано для информирования общества
форум создан для решения вопросов и от движка это не зависит

Ну, это Ваше мнение, я имею другие взгляды на сей вопрос. Разрулить эту ситуацию может только Ди (он один знает, что и для чего создавалось). Если он скажет «с вопросами на форум» — будем придерживаться этой политики. Но тогда следует прописать это явно в «Справке» по сообществу.

Сейчас я вижу ситуацию: Foxek 10 ноября регистрируется в сообществе, читает (предположим) «Справку» и задает вопрос в личном блоге (что не запрещено: «В персональном же можете писать что угодно, это ваше личное пространство»). Его топик быстро «сливают», ибо есть некое негласное правило, «здесь так не принято». Вам не кажется, что со стороны ка-то это все нелогично?

 на хабре надо инвайт получить
При чем здесь хабр? Я проводил сравнение между форумом и сообществом. Хабр — отдельная тема.
+1
Ну, это Ваше мнение
всем насрать на мнения, посему это не мое мнение, а существующая реальность
еще раз повторюсь, что форумы создавались для решения целым сообществом вопроса одного человека
это сообщество создавалось для информирования людей о чем-либо
т.е. это бложик коллективный + личный
но тут дело в том, что ты можеш в своей личной квартире срать, однако вонь все равно идет за пределы твоей квартиры и мешает другим
писать в бложик можно что угодно, но оно транслируется в ленту личных бложиков и несколько мешает читать ее

проще говоря — твое личное пространство не совсем личное и стоит помнить о том, что это все таки сообщество, а не личный бложик на личном домене
например у меня есть личный бложик на личном домене и я там пишу что хочу по тем, не относящимся к электронике
если я буду писать тут об этом, то меня сольют и будут правы

регистрируется в сообществе, читает (предположим) «Справку»
в быдлоучебниках объяснение материала начинается тоже с «предположений» или допущений, но реальность такова, что никто не читает правила и инструкции

ибо есть некое негласное правило, «здесь так не принято».
именно, что реальность оказывается несколько другая, чем описано в учебнике физики и в каких-то правилах

Вам не кажется, что со стороны ка-то это все нелогично?
а реальность вообще не поддается логике, потому что ее творят люди, а человек и отличается от быдлоробота не запрограммированным и может 10 раз делать А, а на 11й сделать Б и никакой логики в этом нет

нужно просто уметь адаптироваться в коллективе
например я могу несколько месяцев читать форум и только потом зарегиться и начать писать
зато я буду уже как свой и буду понимать, о чем можно писать, а чего тут не приветствуется

При чем здесь хабр?
при том, что хабр тоже сделан на движке сообщества и там не задают вопросы, а пишут интересные и не очень статьи
для вопросов там есть отдельный раздел и я его не читаю
вобщем сообщество это инструмент, который надо использовать по назначению для его эффективной работы, а автор сего поста мог бы задать свой вопрос на форуме, ибо кроме него конфиг его кода никому не интересен
+1
:)

что форумы создавались для решения целым сообществом вопроса одного человека

Не ну Вам видать виднее, зачем сдавались BBS, всякие там эхи FIDO, и эти ваши форумы в Internet. И как правильно ними пользоваться.

Может, все-же, пусть Ди (как организатор данного «мероприятия») решит, как он видит разделение приоритетов межу форумом и сообществом (если он считает, что такое разделение необходимо).

именно, что реальность оказывается несколько другая, чем описано в учебнике физики и в каких-то правилах
а реальность вообще не поддается логике

Мда, даже не знаю, как это комментировать.

например я могу несколько месяцев читать форум и только потом зарегиться и начать писать зато я буду уже как свой и буду понимать

Ели правилами ресурса не запрещена публикация подобных статей с вопросами — то глупо сливать человека, за то, что он нарушил неписанное «здесь так не принято». Плюс, правило «здесь так не принято» разделяют, судя по всему, не все члены сообщества.

И как данный топик задел лично Вас — но вас оскорбил, или после его прочтения у Вас ухудшилось самочувствие?

при том, что хабр тоже сделан на движке сообщества

ЕМНИП, данный движок копирует идею хабра, а не наоборот. Но, это не принципиально, ведь мы не хабр обсуждаем.
+1
а вот теперь, когда он второй раз за день засрал главную, попробуйте его оправдать… ;)
+2
ну не главную, конечно. а страницу «Новые».
0
а вот теперь, когда он второй раз за день засрал главную

Нет, теперь я его оправдывать не буду. Но, суть (ИМХО) не в том, что его пост содержит вопрос. А создание множества одинаковых тем не приветствуется не здесь, ни на форуме.

Касательно вопросов в сообществе — я вижу три варианта:
1. Ди принимает силовое решение, пишем в «Справке»: «с вопросами на форум»
2. Прикрутить плагин Q&A в отдельном информационном потоке (давно предлагали)
3. Сделать закрытый блог Q&A (не удобно, т. к. админам вручную придется добавлять участников)
0
единственный рабочий вариант — 1. хотя все равно справку не читают. :)
2, 3 — вообще не взлетит. если уж автоката так и нет, который скачал и включил…
0
Активные участники Сообщества, видно, чрезвычайно заняты, им некогда писать новые статьи.
ну я вот не занят, но писать особо не о чем пока
жду вот мощный уф светодиод, попробую фоторезист им засветить и напишу о результатах
0
Очень интересно, ждем результатов! Кстати, возможно я не в теме, но можно ли использовать для экспонирования фоторезиста УФ-светильники, которыми наши милые дамы пользуются для полимеризации лака для ногтей. Вам известны подобные случаи?
0
да такие лампы и используют, но говорят, что лучше делать на светодиодах 5мм матрицу
но это гиморно паять по 300 диодов и даже на станке сверлить столько дыр и плату делать еще лутом

да и диодами засвечивать быстрее выходит, до 15 секунд, а лампами больше минуты
вот я и увидел, что 20вт диод стоит как упаковка 5мм диодов и решил его взять
0
для засветки фоторезиста как раз предпочтительнее матрица светодиодов. от одного мощного светодиода пятно равномерной засветки будет уж очень маленькое. ну и мощность 20Вт тоже не очень. как я уже неоднократно говорил, 4-5хЕВТ-01 свечу 20секунд с 30см.
0
Я считаю, что вопрос заданий на форуме и в результате ответы на него, еще кому то помогут. А здесь, пост потеряется через месяц и его уже хрен найдеш. На форуме просто сортировка по категориям лучше и я считаю там проще найти тему, чем здесь создавать говнопост, за который тебя сольют и ты не сможеш больше писать. Как то так.
+2
правильно расставленные теги организуют навигацию не хуже (а временами и лучше) чем на форуме
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.