Size: a a a

2021 May 08

s

stD in STM32
А есть какие-то болшие буферы, занимающие много флеша?
источник

Д

Дмитрий in STM32
Вроде нет
источник

Д

Дмитрий in STM32
Есть структура, которую нужно сохранять, но она же в РАМе - около 4кБ
источник

s

stD in STM32
Понятно. Тогда не подойдёт то, что я хотел предложить.
источник

Д

Дмитрий in STM32
Вообще 0й сектор можно трогать? Или код по-любому с 0x08000000 стартует на таблицу векторов?
источник

ND

Nikita D in STM32
сохраняйте итерационно а не только в начало страницы, следующая запись смещена на размер вашей стуктуры, посмотрите еепром эмуляцию от ст , позволить стирать реже, т.к используется 2 страницы памяти
источник

ND

Nikita D in STM32
2 вариант фактически расписали вы, в секторе 0 бутлоадер который прыгает на 3 или 4 сектор, у вас остаются 2 или 3 сектора для записи.
источник

NN

Nik Nikita in STM32
источник

ND

Nikita D in STM32
Просмотрите свою функцию OLED_string внимательно, и посмотрите sprintf чтобы так цифры не преобразовывать)
источник

Д

Дмитрий in STM32
Спасибо, буду пробовать. По бутлоадеростроительству для стм есть что-нибудь путное почитать?
источник

ND

Nikita D in STM32
В вашем случае нужен только прыжок на основное приложении, можете посмотреть примеры из куба IAP не совсем то , но бутлоадер там есть
источник

NN

Nik Nikita in STM32
temp_char[x+1] = LCD_Buffer[(c-32)*8+x]; если я правильно понял то Вы предлагаете избавиться от -32 таким образом?
источник

ND

Nikita D in STM32
Нет, вам не нужно будет отдельно обрабатывать цифры , т к ее преобразует в строку
источник

NN

Nik Nikita in STM32
Понял, спасибо. А по поводу дублирующихся символов не подскажите?
источник

ND

Nikita D in STM32
Я же писал смотри функцию отправки строки, там как минимум зачем-то до цикла идёт печать 1 символа,
источник

ND

Nikita D in STM32
Включи отладчик и делай по шагам, узнаешь виновника
источник

NN

Nik Nikita in STM32
Спасибо
источник
2021 May 09

SW

Skri W in STM32
Купи jlink edu
источник
2021 May 10

NN

Nik Nikita in STM32
Всем спасибо, проблему решил.
void OLED_string(char *string)
{
LCD_Char(*string);
while(*string != '\0')
{
 LCD_Char(*string);
 string++;
}
}
проблема была в этой функции, сначала LCD_Char присваивалось первое значение литерала, после чего происходило его повторное присвоение в цикле вайл
источник

А

Артем in STM32
Подскажите, пожалуйста, что-то не догоняю

Есть кусок кода, после отправления первого сообщения включаю прерывание

В прерывании отправляю символ через другой уарт и получаю следующий

Проблема в следующем: на выходе по итогу получаю ровно половину символов. В чем может быть проблема?

Благодарю
источник