Mysteo 0 25 марта, 2020 Опубликовано 25 марта, 2020 · Жалоба Здравствуйте! Что-то я тут с DMA закрутился. Судя по документам STM32L100RCT6 относится к третьей категории: По блок схеме видно, что у него 2 DMA , первый 7 канальный и второй 5 канальный: Однако в keil при отладке во вкладке View - > System Viewer я вижу только DMA1 и 7 каналов. Я что-то с документацией не разобрался или это в кейле баг ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 25 марта, 2020 Опубликовано 25 марта, 2020 · Жалоба А в самом Keil-е контроллер правильный выбран? Если да, то, видимо, баг... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 25 марта, 2020 Опубликовано 25 марта, 2020 · Жалоба Да правильный, с самого начала это проверил. Ну я уж подумал, что документацию уж перестал понимать ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 25 марта, 2020 Опубликовано 25 марта, 2020 · Жалоба Ребята слушайте проблема, передаю данные через DMA на ЦАП и если в этот момент что-нибудь записываю в EEPROM посредством HAL_FLASHEx_DATAEEPROM_Erase либо HAL_FLASHEx_DATAEEPROM_Program , то канал DMA в залочен делается. Быдлокодю с HAL и кубом. Никак не пойму как сохрание в EEPROM завязана с данной проблемой. Дошло , но не понял как исправить косяк. Если DMA гоняет данные из FLASH памяти, то после сохранения в EEPROM какого либо значения DMA канал зависает. Если же я передаю через DMA данные , которые лежат в RAM , то зависаний нету. А мне как раз данные надо из FLASH перегонять, я делаю простой синтезатор мелодий, где небольшой сэмпл записан на флэш и меняя частоту таймера, можно изменять звучание ноты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 25 марта, 2020 Опубликовано 25 марта, 2020 · Жалоба 54 минуты назад, Mysteo сказал: А мне как раз данные надо из FLASH перегонять, Ну "вы или крестик снимите, или трусы наденьте". Т.е. или гоняйте из ОЗУ или не используйте ЭСППЗУ. Или останавливайте ПДП на время записи в ЭСППЗУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться