if(c<128) c = c-32;
if(c>=144 && c<=175) c = c-48;
if(c>=128 && c<=143) c = c+16;
if(c>=176 && c<=191) c = c-48;
if(c>191) return;
Эти строки, что за смещение? Откуда 144,175 если в ASCII кириллица со 192, чего то не в тыкаю. сам файл шрифта 5х7Спойлер#ifndef FONT5X7_H
#define FONT5X7_H
[uquote="amv2000",url="/forum/viewtopic.php?p=4574661#p4574661"]Эти строки, что за смещение? Откуда 144,175[/uquote]
Эти смещения здесь для уплотнения шрифта, из таблицы ASCII вырезаны непечатаемые символы. Вам надо добавить еще пару условий для кириллицы, если c равен 192 (буква 'А'), то надо вычесть до её реальной позиции в массиве шрифта.
Но вообще у вас код не соответствует шрифту, так как в массиве представлены ненужные строки (первые 32 символа как минимум), а первое условие считает, что их там нет.
[uquote="azhel12",url="/forum/viewtopic.php?p=4574737#p4574737"]если c равен 192 (буква 'А'), то надо вычесть до её реальной позиции в массиве шрифта.[/uquote]
Да это я понял, что смещение. Только цифры какие то странные и если задать if(c>=192 && c<=223) c = c-64; вообще абра кадабра какая то.
если код смещения
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------Практически победил
//--------------------- смещение шрифта кириллицы : --------------------------
if(c<128) c = c-32; //пропускаем не печатаемые символы
if(c>=144 && c<=175) c = c-48; //с 0x90 и до 0xAF идут заглавные по порядку «А» — «Я» исключая «Ё»
if(c>=128 && c<=143) c = c+16; //диапазону 0x80 — 0x8F соответствуют маленькие буквы от «р» до «я»
if(c>=176 && c<=191) c = c-48; //в хвосте с 0xB0 до 0xBF маленькие от «а» до «п»
if(c>191) return;
Оказывается расположение строк смещения тоже важно.
Только кириллица всё равно выводится по 2 байта, подскажите как можно вывести символ чтобы 1 байт был?
Пишу в KEIL установлена кодировка russian windows 1251.
1. Подключите ST-link к софта STM32 ST-LINK к STM32G030F6P6: SWCLK к пин 19, SWDIO к пин 18.
2. В ST-LINK Utility: Connect to the target; меню Target -> Option Bytes ... -> снимите флажок nBOOT_SEL -> Apply -> Disconnect to tne target.
3. Выключите программатор; включите чрез резистор (напр. 10 кОм) BOOT0 (пин 19) к 3.3V.
4. Включите USB/UART конвертeр к пин 9 (USART2_TX) и пин 10 (USART2_RX). Использую модуль на CH340G.
5. Выключите и снова включите питания МК.
6. Старт софт STM32 Cube Programmer -> UART, Port COMX, Connect. Готово.
[uquote="veso74",url="/forum/viewtopic.php?p=4651883#p4651883"]1. Подключите ST-link к софта STM32 ST-LINK к STM32G030F6P6: SWCLK к пин 19, SWDIO к пин 18.
2. В ST-LINK Utility: Connect to the target; меню Target -> Option Bytes ... -> снимите флажок nBOOT_SEL -> Apply -> Disconnect to tne target.[/uquote]
У меня так при первом открытии.
Но как быть если нет ST-LINK.
STM32F030 загружается сразу по UART без выполнения пунктов 1, 2
Сейчас попробую 3 пукт.
Я просто подавал 3.3v джампером напрямую
ST-LINK utility давно устарел, там поддержки G серий нет вообще. По крайней мере в "Revision history" только старье и последнее обновление за 2018 год, как раз когда G0 только появились...
Последний раз редактировалось Adrift Пт ноя 22, 2024 14:51:42, всего редактировалось 1 раз.
[uquote="Adrift",url="/forum/viewtopic.php?p=4651947#p4651947"]ST-LINK utility давно устарел, там поддержки G серий нет вообще.[/uquote]
Хорошо. У моя есть.
До сих пор работал с STM32G030, STM32G070. (Скорее сего в ST-LINK utility интерфейс проверяю отвечает ли STM32: кабели, питания, программатор, неоригинальный МК ... Далее: в IDE есть интерфейс записи).
veso74, да я скачал последнюю, она 2020 года и тогда G0 должна поддерживать, по крайней мере вышедшие на тот момент. Т.е. они втихую еще какое-то время обновляли, а официально даже на документацию забили, неизвестно что в новых версиях добавлено и в каком статусе. После 2020 вышли C0/U0/H5/U5, поддержки которых там уже быть не может, смысл пользоваться такой прогой...
kvn234, независимо от низкого разрешения фото, см. у Вас включена защита. Bootloader есть? Для USB? Не знаю плату, которую показываете. Я бы удалил все и восстановил МК. У меня "голый" МК на макетной плате на бредборде. (Уже "разлюбил" МК, собранные на готовые платы . Таким образом будет "скрыты" важные подробности о конкретном МК. На "голый" МК если что-то пропустим, МК просто не будет работать).
У меня тоже ST-LINK нормально работает с STM32G030 и отладка в STM32CubeIDE
Добавлено after 6 minutes 55 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4651963#p4651963"]kvn234, независимо от низкого разрешения фото, см. у Вас включена защита. Bootloader есть?[/uquote]
Плату брал на Али.
Обычно начальную отладку делаю на аналогичных платах, а затем перехожу на голый микроконтроллер с обвызкой.
С ST-LINK прошивка грузится без проблем.
Загружен блинк и при подключении BOOT0 через резистор на 3.3v продолжает мигать, прошивку по UART не грузит (reset делал, питание отключал).
kvn234, посм. AN2606, для STM32G030 pattern 11, строка 2. В случае необходимо быть изменено состояние BOOT_LOCK(bit) в 0.
---
Можно изменить и только в софт STM32CubeProgrammer.
[uquote="kvn234",url="/forum/viewtopic.php?p=4651939#p4651939"]Но как быть если нет ST-LINK.[/uquote]Что значит нет ST-Link? Он уже сегодня мог у вас быть.
[uquote="VladislavS",url="/forum/viewtopic.php?p=4651987#p4651987"][uquote="kvn234",url="/forum/viewtopic.php?p=4651939#p4651939"]Но как быть если нет ST-LINK.[/uquote]Что значит нет ST-Link? Он уже сегодня мог у вас быть.[/uquote]
Ключевой момент:
На микроконтроллерах STM32G030 вывод BOOT0 изначально отключен. Если чип новый или основная флэш-память стерта, это не проблема, так как встроенный загрузчик автоматически включается. Однако, если чип был ранее запрограммирован с помощью другого программного инструмента, загрузчик может быть больше недоступен через вывод BOOT0 (или кнопку BOOT). В таких случаях бит nBOOT_SEL в байтах пользовательских опций должен быть очищен (установлен в 0) с помощью программатора SWD, например ST-Link, и соответствующего программного обеспечения.
Точно по другому нельзя?
Недавно разбирался с тем, куда нужно подтягивать сигналы SWD. Раньше на сайте ARM была схема с подтяжкой, вроде, CLK к "+" питания, а потом стали требовать подключать его к GND как раз по той причине, чтобы при подаче питания на МК линейки STM32G (возможно, и других новых линеек) в режим запуска встроенного загрузчика. Если найду инфу в своих загашниках, то выложу.
На МК серии G0 пин SWCLK совмещён с BOOT0 . Если на ST-link SWCLK сделать подтяжку к + , то могут быть проблемки. Чип всегда может быть в режиме BOOT .