-
- Он (хал) сам все сделает со стоп битом. но надо разрешать прерывание от иис. По факту по дма уйдет n-1 байт, последний байт со стопом будет отослан по прерываниям. Один из немногих случаев, когда помогает. Очень удобно слать буфер в какой-нибудь go(210 знак., 11.12.2018 20:45 - 20:48)
- Прерывания DMA_Complete вызываются по окончании цикла чтения/записи из/в памяти в регистр данных периферии. При этом передача по физическому каналу может еще быть незавершенной, особенно при наличии буферизации регистра данных периферии (как il-2(46 знак., 11.12.2018 09:03)
- ну да Balda(240 знак., 11.12.2018 09:30)
- ну вот что реально даст выигрыш в I2C DMA? А просто по прерываниям? Неужели так резко займет ресурс? Тем более, что через HAL DMА всё равно занимает прерывания. - Лагунов(11.12.2018 08:51)
- банально просто.. не хочу каждый 100 мкс дергаться..жадность старого ассемблершика.)) - Balda(11.12.2018 09:33)
- Так если DMA через HAL, то там всё равно дергаться в прерываниях почему-то. Я уже проверил. :-) Это надо самому тогда DMA настраивать. - Лагунов(12.12.2018 09:26)
- Решение этой проблемы лежит не в технической плоскости. Вам к мозговеду, батенька :-) - SciFi(11.12.2018 09:35)
- мля тока языком чесать... тока языком!! - Balda(11.12.2018 16:34)
- В ранних STM32 I2C совсем пришибленный. В более поздних есть интересные фишки. Скажем, читать/писать большие куски оч. удобно, в том числе через DMA. - SciFi(11.12.2018 08:55 - 09:06)
- на хмеге я всегда и2с делал по флагам через case. Balda(23 знак., 11.12.2018 09:26)
- а там и нельзя через DMA - не предусмотрено и не работает, если все равно попытаться сделать - AlexG(11.12.2018 09:44)
- на хмеге я всегда и2с делал по флагам через case. Balda(23 знак., 11.12.2018 09:26)
- банально просто.. не хочу каждый 100 мкс дергаться..жадность старого ассемблершика.)) - Balda(11.12.2018 09:33)