ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
1037256 Топик полностью
evgeniy1294 (17.09.2020 11:30, просмотров: 503) ответил Kceния на Уже обращала внимание. Кубистам следовало выставить у функции запуска тип указателя void*, т.к. подставляют туда указатели на массивы с разной длиной элемента, а длина элемента задается в параметрах DMA (DAC_ALIGN_8B_R или DAC_ALIGN_12B_R) в зависимости от выбранной разрядности DAC. А так действительно код выглядит, как ошибка.
Ставить void* не корректно в данном случае. Дело в том, что у dma в stm32 есть такой параметр, как "размер транзакции", который может быть равен 8, 16, 32 бита + есть ещё режим burst. Указатель на uint32_t в параметрах может быть намеком на реализацию данной функции. 

Попробуйте перед отправкой вставить очистку кэша:

SCB_CleanDCache();  


Либо отключить его:

SCB_DisableDCache();

Если поможет, то виноват кэш. С этим уже можно бороться.