Size: a a a

2019 December 10

k

kompilator in STM32
Нет, дело не в кабеле, все проверено, разьем проверен, от разьема до lan872xx проверено, пробовал демо проишивку стандартную, и в кубе инициализировал, раньше все работало
источник

k

kompilator in STM32
Пробовал и дома и на работе и с разными кабелями и разными роутерами/коммутаторами
источник

T

Turunchuk in STM32
Если вы в Питере, могу дать на день-два для проверки(чтобы исключить все другие причины) свою отладку нуклео на 746ZG. Перегенерите проект под этот камень, проверите.
источник

k

kompilator in STM32
Turunchuk
Если вы в Питере, могу дать на день-два для проверки(чтобы исключить все другие причины) свою отладку нуклео на 746ZG. Перегенерите проект под этот камень, проверите.
Да, я в Питере, можно встретится, тоже могу дать эту отладку, или вместе посмотрим. Хотелось бы выяснить что случилось
источник

МО

Михаил Обухов in STM32
Здравствуйте! Осваиваю АЦП, по примерам с сайта дошел до DMA. Почему у меня выводится результат только один раз, а не циклично? Правильно ли я понимаю, HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&adc, 2); этой функцией мы запускаем преобразование на АЦП, затем по окончанию преобразования. с помощью DMA результат копируется в буфер и происходит прерывание?!
источник

МО

Михаил Обухов in STM32
Вся разница с примерами с сайта у меня в том, что я результат вывожу не в UART а через отладку printf
источник

s

stD in STM32
Причин не работы может быть много, первое что приходит в голову - включён ли у вас циклический режим ДМА?
источник

s

stD in STM32
Так же настройки АЦП надо смотреть, какой камень, и т.д., и т.п.
источник

AS

Alexey Sidorov in STM32
stD
Причин не работы может быть много, первое что приходит в голову - включён ли у вас циклический режим ДМА?
если не подводит память, у вас в примерах вывод происходит в прерывании, возможно printf там виснет, надо копать. для начала вместо принтф поставил бы тоглпин на светодиод. проверить работет ли без принта
источник

МО

Михаил Обухов in STM32
stD
Так же настройки АЦП надо смотреть, какой камень, и т.д., и т.п.
Камень stm32f103. Если закоментировать эту строчку в колбеке "HAL_ADC_Stop_DMA(&hadc1); // это необязательно"
то данные сыпятся с большой скоростью.
источник

МО

Михаил Обухов in STM32
В бесконечном цикле делаю так     HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&adc, 2); // стартуем АЦП
   HAL_Delay(500);
и все вроде бы как работает!
источник

s

stD in STM32
Это крайне непрактичный подход - перезапускать ДМА в беконечном цикле.

Прежде чем решать какой способ выбрать, нужно понять вашу задачу.
источник

МО

Михаил Обухов in STM32
Хочу считывать показания с датчиков температуры TMP36 их планируется 3шт. Запускать преобразование для начала хотел вручную раз в несколько секунд.
источник

JD

John Doe in STM32
Мне казалось что если ты конфигурируешь дма+периферия и тогда автоматически данные с периферии попадают по адресу.
источник

JD

John Doe in STM32
Дма так же синхронизируется с периферией чтобы задать данные когда они готовы.
источник

МО

Михаил Обухов in STM32
Вот мои настройки
источник

МО

Михаил Обухов in STM32
источник

МО

Михаил Обухов in STM32
источник

МО

Михаил Обухов in STM32
источник

s

stD in STM32
John Doe
Мне казалось что если ты конфигурируешь дма+периферия и тогда автоматически данные с периферии попадают по адресу.
ДМА + АЦП довольно таки не простая связка, в плане вариантов настроек.

Поскольку канала три, то да, можно использовать ДМА, но можно и просто инжектированые каналы использовать. Можно настроить просто ДМА, можно ДМА толкать таймером, через нужные промежутки времени и тогда всё будет аппаратно происходить. Можно вообще без ДМА, нужно только АЦП настроить соответственно. Можно толкать таймером, но без ДМА. ДМА может работать в циклическом или не циклическом режиме, и т.д.

В общем там такое разгуляево в смысле выбора, что я не знаю что предложить )))
источник