|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
||||||||||||||||||||||||||
Структура GPIO_TypeDef для регистров. STM3225.04.2022, 08:48. Показов 8061. Ответов 78
Метки нет (Все метки)
Застрял на регистрах stm32.
Может кто нибудь подскажет? Вопрос не в самих регистрах, а в языке Си. Немного об устройстве регистров как я это вижу: В файле stm32f10x.h находится структура:
Затем делаются указатели для каждого порта и регистров. #define GPIOA ((GPIO_TypeDef*)0x48000); Я думаю затем заполняется где то вся эта структура GPIO_TypeDef, но где я не нашёл. Затем идёт настройка регистров
В принципе то что выше можно не учитывать, я пример упрощу. У меня не получается заполнить структуру по указателю. Visual Studio выдаёт ошибку. МК у меня ещё нет, тренируюсь на обычных IDE. Этот способ является правильным для заполнения структуры?
Так не получается
0
|
||||||||||||||||||||||||||
| 25.04.2022, 08:48 | |
|
Ответы с готовыми решениями:
78
Структура регистров накоплений GPIO_TypeDef has no member named BSR Вывести состояние сегментных регистров и регистров флагов (ассемблерная вставка) |
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||||
| 30.04.2022, 09:03 | |||||
|
А что на счет "дырок" - никто не обещал их наличия, никто не обещал их отсутствия. Производитель располагает регистры по свободным адресам так, как сам хочет. Хоть кубик подбрасывает.
0
|
|||||
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|
| 30.04.2022, 09:46 [ТС] | |
|
0
|
|
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|
| 30.04.2022, 11:07 | |
|
У вас на скриншоте ошибка: красная надпись должна быть "абсолютный адрес в hex цифре". 0x4000`0000 это именно абсолютный адрес, а не размер. Отсюда непонятно что именно вас вводит в заблуждение.
1
|
|
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|
| 30.04.2022, 12:43 [ТС] | |
|
0
|
|
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|
| 02.05.2022, 08:16 [ТС] | |
|
Что он здесь имеет в виду? https://youtu.be/Un7ryDTu5VU?t=124
0x23FFFFFF-0x22000000==1FFFFFF==33 554 431 33 554 431/1 048 576=32 Мегабайт Байт на слово, а не бит на слово. Один адрес==один Байт. Где то число, от которого в 32 раза больше? бит на слово было бы столько Байт:33 554 431/8==4 194 303
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 02.05.2022, 09:17 | ||
![]() читать нужно все таки даташиты, а не интерпретаторов ![]() хороших популязитаров очень мало, куча пользуется таким приемом "Это всем понятно", "после очевидных преобразований",... Даже у Мартина(Мартин М. "Инсайдерское руководство по STM32") полно таких пассажей
0
|
||
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||
| 02.05.2022, 09:18 | |||
0
|
|||
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|
| 02.05.2022, 11:05 [ТС] | |
|
А, кажется понял.
Есть области памяти где слово составляет не один Байт, а один бит. То есть один адрес==один бит. Один Байт например проецируется(дублируется) на Bit banding область памяти и из этого одного Байта получается 8 адресов. Только непонятно почему в 32 раза больше. Из одного мегабайта должно получиться ведь 8 388 608 бит, а значит столько же адресов. Это может быть в том случае если слово составляет не 1 Байт, а 4 Байта. Слово в stm32 составляет 4 Байта что ли? То есть один адрес==4 Байта.
0
|
|
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|
| 02.05.2022, 11:19 [ТС] | |
|
Тогда это не сопоставляется со смещением регистров.
Смещение между регистрами 4 адреса и занимают они 4 адреса. Это должно быть 1 адрес на Байт.
0
|
|
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|
| 02.05.2022, 11:23 [ТС] | |
|
Мне с основами надо разобраться. Дальше сам конечно рассуждать смогу.
Противоречивые вещи встречаются. Везде я информацию ищу. Что это мне скажет если 32 разрядная шина, а регистры занимают 4 Байта по адресу на Байт. Структура GPIO_TypeDef для регистров. STM32
0
|
|
|
|
||
| 02.05.2022, 11:30 | ||
![]() Понимаете что такого не может быть? ![]() Вот парочка статей про Bit Banding https://habr.com/ru/post/454408/ http://we.easyelectronics.ru/S... nding.html http://www.gaw.ru/html.cgi/txt... /2_3_7.htm http://digitrode.ru/computing-... stm32.html
0
|
||
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|||
| 02.05.2022, 11:35 [ТС] | |||
|
А в видео похоже на то что Один адрес==4 Байта У меня гугл есть
0
|
|||
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||
| 02.05.2022, 11:45 | |||
|
0
|
|||
|
|
||
| 02.05.2022, 11:52 | ||
|
0
|
||
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
||
| 02.05.2022, 12:29 [ТС] | ||
|
Видел и читал я по разному. В STM32CubeProgrammer 16 Бит на адрес, шина 32 битная, а регистры 1 Адрес==один Байт. ps если что, я случайно кликнул на лучший ответ))
0
|
||
|
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,084
|
|||
| 02.05.2022, 12:46 | |||
|
Другое дело, что контроллер может за раз (за одну инструкцию) прочитать 1-4 байта по 1-4 последовательным адресам. И третье дело, что иногда в контроллерах встречается периферия со своим размером ячейки. Скажем, по последовательным адресам могут находиться 32-битные регистры. Но это редкость и это надо смотреть на конкретную периферию.
1
|
|||
|
4 / 4 / 1
Регистрация: 24.04.2022
Сообщений: 79
|
|
| 02.05.2022, 13:42 [ТС] | |
|
Вот например не про чтение, а именно про запись во флеш.
4 Байта на адрес. https://blog.avislab.com/stm32-flash_ru/ Писать во Flash надо словами по 32 бита.
0
|
|
|
|
|||
| 02.05.2022, 13:56 | |||
Ну-ну...![]()
0
|
|||
| 02.05.2022, 13:56 | |
|
Сложить содержание регистров R1 и R4 текущего банка регистров и отразить результат на статическом индикаторе Вывод на экран двоичного содержимого двух регистров (ввести значения этих регистров требуется с клавиатуры) Структура таблицы для ввода номенклатуры в БД Аксесс 2003+ структура изделия Конфигурация регистров для использования внешнего clock для таймера
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|