Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2021, 12:17

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 16 ноя 2020, 13:33 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 4910
Откуда: КЧР, поселок Нижний Архыз
А там все просто: GPIOA - это структура GPIO_typedef, расположенная по адресу 0x40010800. Все это можно прочесть в заголовках исходников.
В этой структуре определены функциональные регистры, так что GPIOA->CRL как раз на адрес 0x40010800 и выведет. Ну и так далее.

Кроме того, не стоит писать "магические числа" в регистры: если нет готовых макросов, стоит сделать свои. Потому как вот это:
Код:
GPIOA->CRL |= (0<<15 | 0 << 14 | 1 << 13 | 0 << 12);

Ни о чем вообще не говорит, пока не откроешь RM.
Кстати, еще раз напомню, что все эти функциональные регистры - волатильные! Т.е. если писать
Код:
reg1 |= a; reg1 |=b; reg1 |= c; ...

компилятор это не оптимизирует, и будет N раз считывать значение регистра, добавлять туда флаги и писать обратно. Изменять надо за один присест:
Код:
reg1 |= a|b|c;...

или даже так:
Код:
reg1 = (reg1 & (~someflags)) | a|b|c;...

а во время инициализации - просто так:
Код:
reg1 = a|b|c;...

(если по RM регистр инициализируется нулями, это не для всех работает).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 16 ноя 2020, 15:54 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 698
Откуда: Санкт-Петербург
Olegins писал(а):
и еще с этим разбираться вот прям щас не хочу
да и не понимание того, что там происходит GPIOA->CRL хотя бы приблизительно напрягает

ну ты бы еще сразу в бинарном виде писал :)))

каждый производитель дает заголовочник для МК.
есть там структура с настройками порта, вот ее и нужно использовать, по крайней мере самых простых ошибок получится избежать. Об этом уже все тут сказали.
Писать так как ты пишешь это тоже самое , что набирать код мышкой на виртуальной клаве, только потому что ты так привык и не хочешь использовать в работе больше чем два пальца на мышке. забавно, но факт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 16 ноя 2020, 15:59 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 698
Откуда: Санкт-Петербург
а еще странно что все пины , даже больше 7 ты пишешь в регистр CRL . (именно он определен у тебя. но за ним идет CRH , в котором настраиваются пины 8-15)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 16 ноя 2020, 21:40 
Только пришел

Зарегистрирован: 14 ноя 2020, 23:36
Сообщения: 23
Atomic-dm, хочешь верь хочешь не верь, но так легче понять что к чему, чем абстракции заучивать. Теперь для меня очевидно что такое GPIO->CLR и не надо по всему интернету лазить, искать объяснение
Не все пины, только А1-А3, остальные CRH


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 16 ноя 2020, 22:38 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 698
Откуда: Санкт-Петербург
Olegins писал(а):
Atomic-dm, хочешь верь хочешь не верь, но так легче понять что к чему, чем абстракции заучивать.

это не какие то абстракции, а заголовочный фаил который по умолчанию должен быть у любого вендора. Запомнить структуру для ножек гораздо проще чем запомнить адреса регистров. Или ты регистры тоже по памяти пишешь ? Ну может и так, но всяко проще запомнить структуру. Я вообще не сторонник что-то доказывать, так как считаю что каждый сам решает что ему удобнее, а что нет. Это просто моя точка зрения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 16 ноя 2020, 22:48 
Только пришел

Зарегистрирован: 14 ноя 2020, 23:36
Сообщения: 23
да на вкус и цвет как говорится. Вопрос щас в другом, почему не включаются А1-А3, я 30 раз проверил адреса, сами пины работают, потому что халом включаются, прошивка заливается, потому что С13 работает, что за мистика (вот щас это для меня мистика, не понимание процессов)....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 16 ноя 2020, 22:56 
Только пришел

Зарегистрирован: 14 ноя 2020, 23:36
Сообщения: 23
Eddy_Em писал(а):
Кроме того, не стоит писать "магические числа" в регистры: если нет готовых макросов, стоит сделать свои. Потому как вот это:
Код:
GPIOA->CRL |= (0<<15 | 0 << 14 | 1 << 13 | 0 << 12);

Ни о чем вообще не говорит, пока не откроешь RM.
Кстати, еще раз напомню, что все эти функциональные регистры - волатильные! Т.е. если писать
Код:
reg1 |= a; reg1 |=b; reg1 |= c; ...

компилятор это не оптимизирует, и будет N раз считывать значение регистра, добавлять туда флаги и писать обратно. Изменять надо за один присест:
Код:
reg1 |= a|b|c;...

или даже так:
Код:
reg1 = (reg1 & (~someflags)) | a|b|c;...

а во время инициализации - просто так:
Код:
reg1 = a|b|c;...

(если по RM регистр инициализируется нулями, это не для всех работает).

я из js - php пришел, пока плаваю в этих вопросах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 17 ноя 2020, 02:21 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 698
Откуда: Санкт-Петербург
Проверил твой код инициализации и мигания. полностью не повторил конечно, но биты инициализации взял как у тебя
Show

у меня все работает. по крайней мере напряжение на тестере скачет туда сюда.
Может ты SystemInit сам тоже написал и там что-то намудрил ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 17 ноя 2020, 02:30 
Только пришел

Зарегистрирован: 14 ноя 2020, 23:36
Сообщения: 23
нет, кубом сгенерировал, но нчего не настраивал в графическом интерфейсе. По умолчанию все. В этом какая то причина, нужно чего то еще включить.Но тогда почему С13 работает
а вот где включил кубом(только ноги, больше ничего), там работает
Вложение:
Screenshot from 2020-11-17 00-33-09.png
Screenshot from 2020-11-17 00-33-09.png [ 33.74 Кб | Просмотров: 132 ]


Последний раз редактировалось Olegins 17 ноя 2020, 09:11, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 17 ноя 2020, 09:09 
Только пришел

Зарегистрирован: 14 ноя 2020, 23:36
Сообщения: 23
в общем причину нашел, не правильно конфигурация прописывается почему то, если записать так, то работает
GPIO_CRL_A=0x1110;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 17 ноя 2020, 09:59 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 698
Откуда: Санкт-Петербург
Olegins писал(а):
нет, кубом сгенерировал, но нчего не настраивал в графическом интерфейсе.

вот это вообще разрыв шаблона. т.е. брать хедеры из CMSIS ты не хочешь, копаясь в значениях регистров, при этом доверяешь кубу всю инициализацию... Удивительное рядом :)))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 17 ноя 2020, 11:14 
Только пришел

Зарегистрирован: 14 ноя 2020, 23:36
Сообщения: 23
почему не хочу, как раз занимаюсь с этим сейчас, надо же тоже разобраться.
Заодно подскажи, вроде все настроил правильно, но куб не показывает подсказки когда начинаешь писать RCC->должен подсказать


Вложения:
Screenshot from 2020-11-17 09-28-03.png
Screenshot from 2020-11-17 09-28-03.png [ 21.39 Кб | Просмотров: 94 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 17 ноя 2020, 12:46 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 698
Откуда: Санкт-Петербург
я Куб IDE не использую вообще;

но по твоим вкладкам смею предположить, что ты вместо нормального #include "stm32f10x.h" подключил что-то другое "stm32103x6.h"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подскажите куда копать
СообщениеДобавлено: 17 ноя 2020, 13:56 
Только пришел

Зарегистрирован: 14 ноя 2020, 23:36
Сообщения: 23
я вообще ничего не подключил, думал если в настройках папки добавил сам подключится. Теперь подключил, заработало.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB