Группа: Участник
Сообщений: 41
Регистрация: 17-10-14
Пользователь №: 83 186
STM32F4. Keil. Есть массив, в который складываются данные от UARTа. Случайно заметил, что его содержимое, если даже UART disabled, меняется. Я в программе анализирую один из элементов этого массива и поджигаю светодиод. Он стал случайным образом подмигивать. Кто или что может писать в массив, портить данные? Динамических массивов я не создаю. Используется DMA передача данных. Но адреса источников и приёмников не совпадает с адресом массива UARTa.
Подскажите, что нужно сделать чтобы не было произвола? Заранее спасибо.
Для того чтобы устранить ошибку надо: 1. найти ошибку 2. устранить Вы что серьезно думаете это поможет человеку, который такое спрашивает?
По сути вопроса. Данные могут испортиться когда кто-то что-то пишет. Потому по всей вашей программе найдите присвоения (особенно где вы что-то копируете по указателям или блоками в массив), в этих местах и ищите где вы что-то скопировали мимо адреса. Сразу попробуйте увеличить стэк проекту, может быть он кончился и данные полезли на ваши сверху. Еще раз точно проверьте что у вас все каналы ДМА выключены, проверьте прямо регистры.