Size: a a a

2021 April 02

I

Igor in STM32
Для 042 тут нет такого выбора
источник

VO

Valeriy Osipov in STM32
В общем с АЦП, ДМА и таймером можно сделать так чтобы буфер заполнялся значениями АЦП вообще без участия процессора. Можно такую же фигню сделать с просто чтением GPIO? Типа 20000 раз в секунду прочитать значение на пине и сложить в буфер
источник

ПП

Павел Простаков... in STM32
Можно, в источнике для дма указываешь GPIOx - > IDR
источник

М~

Матвей ~~~ in STM32
Матвей ~~~
Кто нибудь разбирается в подключении i2c на плате stm32l100 ?
Просто на ней стоит 24aa00 перепрограммироваемое пзу,а примеры в интернете в основном для дисплеев или внешних пзу
?
источник

VO

Valeriy Osipov in STM32
так, а дальше? как сделать чтобы ДМА запускался по таймеру, а не просто 20000 раз сложил значение с пина настолько быстро насколько ДМА это сможет?
источник

VO

Valeriy Osipov in STM32
как сделать, чтобы ДМА работал по кругу? в кубе для MemToMem DMA можно выбрать только одноразовое копирование
источник

VO

Valeriy Osipov in STM32
А чем подключение ПЗУ и дисплея по I2C отличается? I2C такой же, команды разные, ну значит читайте даташит на ПЗУ
источник

М~

Матвей ~~~ in STM32
Valeriy Osipov
А чем подключение ПЗУ и дисплея по I2C отличается? I2C такой же, команды разные, ну значит читайте даташит на ПЗУ
Я совсем новичок
Вот в чем дело🙂
источник

ПП

Павел Простаков... in STM32
Valeriy Osipov
так, а дальше? как сделать чтобы ДМА запускался по таймеру, а не просто 20000 раз сложил значение с пина настолько быстро насколько ДМА это сможет?
Дма привязываешь к таймеру, у автора канала в статьях об этом очень подробно описано, в статье про таймер и дма, не могу сейчас ссылкой поделиться
источник

ПП

Павел Простаков... in STM32
Valeriy Osipov
так, а дальше? как сделать чтобы ДМА запускался по таймеру, а не просто 20000 раз сложил значение с пина настолько быстро насколько ДМА это сможет?
Могу позже скинуть, как я делал
источник

VO

Valeriy Osipov in STM32
Павел Простаков
Могу позже скинуть, как я делал
был бы признателен
источник

s

stD in STM32
Valeriy Osipov
как сделать, чтобы ДМА работал по кругу? в кубе для MemToMem DMA можно выбрать только одноразовое копирование
источник

s

stD in STM32
источник

s

stD in STM32
С ДМА можно много чего вытворять. Читайте.
источник

ПП

Павел Простаков... in STM32
Valeriy Osipov
так, а дальше? как сделать чтобы ДМА запускался по таймеру, а не просто 20000 раз сложил значение с пина настолько быстро насколько ДМА это сможет?
/* USER CODE BEGIN 2 */
 udp_client_connect();
 HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_1);
 HAL_DMA_Start_IT(htim1.hdma[TIM_DMA_ID_CC1], (uint32_t)&GPIOD->IDR, (uint32_t)ADCMassive, 2800);
 __HAL_TIM_ENABLE_DMA(&htim1, TIM_DMA_CC1);
 __HAL_TIM_ENABLE(&htim1);
источник

ПП

Павел Простаков... in STM32
Можно таймер останавливать при наполнении массива и забирать данные, либо заставить ДМА вызывать callback при заполнении
источник
2021 April 03

ДШ

Дияр Шавкатов... in STM32
Всем привет, у меня плата stm32f746 со встроенным ethernet модулем, у кого есть опыт в работе с http(stm32 будет клиентом)
источник

ДШ

Дияр Шавкатов... in STM32
В интернете поискал мало инфы
источник

A

Artem 🏳️‍🌈 USSR Gay ... in STM32
Да вроде по lwip есть инфа
источник

VO

Valeriy Osipov in STM32
stD
С ДМА можно много чего вытворять. Читайте.
я поженил DMA и тот пример с приемом ИК сигнала с сайте. Который попроще, без распознавания бренда. Короче схема такая, DMA настроен на считывание всего GPIO порта в буфер и завязан на таймер TIM4, который настроен на 50 мкс. Изначально включено только прерывание на пине ИК датчика по спадающему фронту. Когда прерывание получено - это значит, что сигнал только только начался. В прерывании выключаем собственные прерывания GPIO и запускаем TIM4. С этого момента каждые 50мкс дма будет складывать IDR в буфер. По завершению заполнения буфера в прерывании останавливаем таймер и анализируем, что мы там насэмплировали. Можем отправить в ЮАРТ ну и всё-такое. В конце перезапускаем ДМА и опять запускаем прерывание на пине.

Преимущество в том, что не надо 20000 раз в секунду прыгать в прерывание и проверять, есть сигнал или нет. Недостаток - сигнал с моего самсунговского пульта например длится 75 мс. JVCшный - около 45. Это значит, что размер буфера должен быть хотя бы 3 Кб, с запасом - 4Кб. Это конечно печально.

https://github.com/SgtPepperFTW/IR_remote_receiver_it_dma
источник