[uquote="rai17",url="/forum/viewtopic.php?p=3663950#p3663950"]Смотрю в View-System Viewer-TIM-TIM1-CNT (повторюсь, пользуюсь Keil).
Так вот (опять же повторяюсь), при установки breakpoint на вход в ISR TIM1 в симуляторе (Use Simulator) всё отлично - вижу 0х0000, а вот при подключении платы с прошитым камнем STM32F103С8Т6 по SWD через ST-Link V2 (Use: ST-Link Debugger) – получаются вообще случайные значения в View-System Viewer-TIM-TIM1-CNT.[/uquote]
Вот именно поэтому и не нужно использовать симулятор. Сами видите же - что толку от него ==0 при отладке работы с периферией.
Скопируйте нужный периферийный регистр в локальную переменную (static int volatile var) на входе в ISR
до брекпоинта. И смотрите эту переменную.
Добавлено after 12 minutes 31 second:
[uquote="hosturik",url="/forum/viewtopic.php?p=3664073#p3664073"]А как мне выйти с положения, может есть какое то решение?[/uquote]
Вообще по уму DMA-транзакции с SPI-шиной завершают не по завершению
передачи, а по завершению
приёма. Если конечно знать - что такое SPI и что на ней передача идёт почти одновременно с приёмом. Тогда и FIFO любой глубины не страшно
Если только конечно не используете однопроводный (2-направленный по одному проводу SPI). В этом случае сложнее: тогда завершение TX-DMA без поллинга можно ждать зарядив таймер на некоторую выдержку после уведомления от TX-DMA-канала о завершении передачи блока. Выдержку посчитать исходя из размера FIFO. Ну или завести низкоприоритетную задачу и поллить в ней, не мешая работе полезных задач.
Добавлено after 5 minutes 56 seconds:
[uquote="hosturik",url="/forum/viewtopic.php?p=3664093#p3664093"]Ну у меня примерно так и есть, примерно ~100ms обновление экрана, SPI по даташиту в нем максимум 10 мегагерц, хотя я передаю на 12.[/uquote]
Не верь даташиту! У меня LCD на ILI9341 320x240 в проекте работает с SCLK <= 45МГц.
[uquote="hosturik",url="/forum/viewtopic.php?p=3664093#p3664093"]Это теоретический предел обновления обновления для этой частоты.[/uquote]
Нет конечно. На STM32F429 на 180МГц у меня обновляется хоть на полной скорости 45МГц. Хотя сейчас стоит 160МГц тактовая и соответственно - SCLK=40МГц.
Добавлено after 9 minutes 22 seconds:
[uquote="Reflector",url="/forum/viewtopic.php?p=3664121#p3664121"]Конечно, даже может реже, все равно бессмысленно обновлять данные 10 раз в секунду.[/uquote]
Если есть какая-то динамика и графические элементы её отображающие - то нормально. Например если график или какой-то линейный/круговой индикатор - выше частота - плавнее двигается.