Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 07:08:46

Возможно выход за пределы массива.
В большинстве случаем компилятор предупреждает, а в отладчике это было бы видно.

В отладчике видно, если знать куда смотреть.
А если взять бинокль и смотреть в большие линзы - то чёт ничего не видно. Так что не пытайтесь намекать тому, кто этого не понимает смысла намёков.

ivan dimir писал(а):Каким образом видно было?.Я не создавал массив.У меня просто куча буферов.

Вот и нам тоже интересно, как проявлется "мерцание".
Попробуйте добавить задержки в код, чтобы увидеть в какой момент происходит "мерцание".

Когда не получается отлаживать код обычным образом - можно отлаживать его "Alert'ами"
СпойлерИзображение

Ну или логами в консоль. Кому как удобно.

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 07:34:16

Отладчиком на этой плате я не могу пользоваться не подключена шина swo.А курочить программатор не охота.Вдруг поломаю.Ну я и стирал и добавлял задержку.Мерцание 5 сетора сверху.Ладно сместил цыфры вправо.Наткнулся на 9 сектор свеху .Ладно на низ опустил.Тоже самое.Можно отлаживать его "Alert'ами".А что это такое?.Потом поменя просто буфер.А когда я прописываю buf0 всё хорошо работает.

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 09:51:54

ivan dimir писал(а):Отладчиком на этой плате я не могу пользоваться не подключена шина swo.
SWO не нужно, есть окно live watch, в IAR и Keil есть, как вариант STMStudio, не знаю есть ли в EmBitz, но в cubeide должно быть.
В это окно добавляешь свои буфера и смотришь, где что меняется, а потом ищешь причину.

У мну нет такого чипа, я бы тебе помог, а в протеусе только F401 есть.

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 11:51:00

Ну я и стирал и добавлял задержку.Мерцание 5 сетора сверху.
Ладно сместил цыфры вправо.Наткнулся на 9 сектор свеху .
Ладно на низ опустил.Тоже самое.

Потом поменя просто буфер.А когда я прописываю buf0 всё хорошо работает.


Вы уверены, что используете СНАЧАЛА запись в буфер, а потом вывод на экран, а не подобный код:
Код:
ПИХАЕМ В ЭКРАН();
ПИХАЕМ В ЭКРАН();
buf1[position1] = n;
ПИХАЕМ В ЭКРАН();
ПИХАЕМ В ЭКРАН();
ПИХАЕМ В ЭКРАН();
ПИХАЕМ В ЭКРАН();
ПИХАЕМ В ЭКРАН();
ПИХАЕМ В ЭКРАН();


Вместо такого:
Код:
buf_line0[n] = 'H';
buf_line0[n] = 'E';
buf_line0[n] = 'L';
<...>
buf_line1[n] = 'V';
buf_line1[n] = 'a';
buf_line1[n] = 'l';
buf_line1[n] = 'u';
buf_line1[n] = 'e';
<...>
ПИХАЕМ В ЭКРАН();


[uquote="ivan dimir",url="/forum/viewtopic.php?p=4183511#p4183511"]> Можно отлаживать его "Alert'ами".
А что это такое?.[/quote]
Смысл картинки в спойлере не дошёл? Печально.
Если расказывать долгим путём, то когда нет отладчика (или не хочется/не получается им пользоваться), программисты придумывают свои собственные костыли для отладки в процессе выполнения. Конкретно - грубо останавливают код, и выводят сообщение куда-либо. Хоть тем же светодиодом начинают мограть. Был у меня такой случай в процессе обучения. Приходилось выводить переменную морганием светодиода. Побитно. И считать её значение, затем жать на кнопку. Было это во времена AVR-ISP на пяти проводках.
Но не суть.
В Вашем случае - выделите ОДНУ строку эарана под отладочные сообщения. И расставьте в коде вывод сообщений ИМЕННО В ЭТУ СТРОКУ.
С вменяемыми интервалами между выводом, чтобы успеть прочитать.
Потому что я снова подозреваю, что Вы выводите сначала какую-то дичь в клетку экрана, а затем переписываете что-то поверх неё, вот экран и мерцает.

Это нормально в начале изучения программирования.

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 16:12:09

Можно вопрос?Как вывести результат на экран?.Я знаю два пути.один через буфер.А другой побайтно выодить на экран.Не так ли?

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 17:16:21

Можно ещё на прозрачной плёнке напечатать и наклеить сверху. В магазинах на витрине так часто делают - хорошо смотрится и не мерцает.

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 18:29:17

ivan dimir писал(а):Как вывести результат на экран?

Подозреваю что рисовать на экране уже умеешь, но оно мерцает. У всех жк экранов есть аппаратная нога события обновления экрана, у символьных наверное тоже есть, но программный вариант (какой-то регистр). Весь смысл в том чтобы не рисовать быстрее чем экран успевает отобразить, и главное вовремя.

Re: stm32 cubeide два инкремента не совместимы.

Пт фев 18, 2022 22:38:25

уже не мерцает.

Re: stm32 cubeide два инкремента не совместимы.

Сб фев 19, 2022 10:37:47

ivan dimir, хотя бы вот это поставь, там настроек минимум.

Повторяю еще раз, SWO не нужно, там три проводка всего SWCLK SWDIO и GND, любой китайский STLINK поддерживает.

Re: stm32 cubeide два инкремента не совместимы.

Сб фев 19, 2022 20:00:47

На одном програматоре не рааботает.А тот что подороже работает.Можно пошагово.Кстати в Микрочип студио это работает без какого либо програматора.

Добавлено after 16 minutes 1 second:
Это программа stmstudio?
Ответить