Подскажите. Если мне после конфигурирования портов надо получить уже установленные состояния на оных, я включаю тактирование , выставляю регистр GPIOA->ODR(как мне нужно) и потом конфигурирую порт как выход РР?
_________________ У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Пн фев 12, 2018 22:48:55
Нашел транзистор. Понюхал.
Зарегистрирован: Пн июн 21, 2010 19:57:07 Сообщений: 152 Откуда: Россия - родина моя
Рейтинг сообщения:0
Здравствуйте!
Постепенно решил переходить с AVR на ARM STM32. Купил одну из самых дешевых отладочных плат на микроконтроллере STM32F103C8T6 и к ней в придачу простенький St-Link v2.
Скачал CubeMX v4.23. Решил поиграться с АЦП. На вкладке "Pinout" выбрал нужные мне каналы. На вкладке "Configuration" смотрю параметры ADC1.
Насколько я знаю АЦП в STM32F103C8T6 12 битный и для ускорения ацепирования имеется возможность уменьшить разрядность АЦП например до 10 или до 8 бит и даже до 6 бит. Где в CubeMX для микроконтроллера STM32F103C8T6 выставляется этот параметр?
Например для микроконтроллера STM32F030F4P6 этот параметр выставляется так:
Далее решил для микроконтроллера STM32F103C8T6 использовать интерфейс RS-485. Для реализации этого интерфейса необходимо подключить дополнительный вывод который будет переключить направление у микросхем драйвера RS-485 (прием/передача). Смотрю-смотрю, но так и не нашел где же можно установить использование дополнительного вывода для переключения прием/передача.
Для микроконтроллера STM32F030F4P6 этот параметр выставляется так:
Скачал новую версию 4.24 ситуация аналогична. Скачал старую версию 4.17 ситуация аналогична.
Я, конечно, понимаю, что можно выставить необходимый вывод для управления приемом/передачей самому и дописать его использование, можно самому выставлять разрешение АЦП, но видимо либо я что-то недопонимаю, либо CubeMX еще сырой?
Насколько я знаю АЦП в STM32F103C8T6 12 битный и для ускорения ацепирования имеется возможность уменьшить разрядность АЦП например до 10 или до 8 бит и даже до 6 бит. Где в CubeMX для микроконтроллера STM32F103C8T6 выставляется этот параметр?
Не нужно гадать, открывай документацию и смотри можно ли у конкретного ADC понизить разрядность или поддерживается ли Hardware flow control для RS-485. У F1 самая старая периферия, если в кубе что-то видишь у F0, но не видишь у F1, значит скорее всего этого чего-то и нет.
Dentorol, так у него скорость ацепирования на 12 разрядах 1 МЕГАсемпл / сек. У F1 нет аппаратной возможности управлять режимом RS485. F1 намного старее чем F0, некоторую периферию в новых МК переделали с нуля, много чего доработали. Но во всяком случае F103 лучше чем F100, и с ним можно работать. Но при переходе на F4, F3, F0 будут нюансы. И лучше начать изучение хотя бы с SPL, куб для изучения не подходит.
_________________ Иван Сусанин - первый полупроводник
И лучше начать изучение хотя бы с SPL, куб для изучения не подходит.
для начального изучения не подходит HAL. Куб умеет вместо него (не все, но по большей части) генерить исходники с LL, оно идеологически не так уж отличается от SPL.
Под изучением подразумевалось как раз изучение, а не "кликнул два раза и диодик замигал". Куб, если я ничего не путаю, впихнет в проект тот же HAL. Если нужно быстро сделать рабочее устройство используя много периферии, то можно и кубом, по крайней мере пока нет своих наработок.
Добавлено after 1 hour 28 minutes 56 seconds: Dentorol, а что в результате должно получиться ?
_________________ Иван Сусанин - первый полупроводник
Куб, если я ничего не путаю, впихнет в проект тот же HAL.
не обязательно, в свойствах проекта для каждой (почти) периферии можно выбрать, какой код генерить - HAL или LL. ST уверяет, что LL - Low Level Library - новая разработка, но плавает и крякает она как SPL. Местами прям копипаста.
Здравствуйте. Изучаю потихоньку работу с внешними прерываниями. Хочу переключать режимы мигания светодиодов по нажатию кнопки, например. Понимаю, что это проще сделать через таймеры, но изучение тут самоцель. Хочу генерировать прерывания непосредственно от кнопки, но у меня возникла проблема дребезга. Можно ли как то просто решить эту проблемку, ведь обычным способом не прокатит наверное.
else { if (Button_count>0)Button_count--; else Button_state=0;
И еще вопрос. Нажатие кнопки которая заведена на PA0 Может вызвать только 1 обработчик прерывания EXTI0_IRQHandler, верно? А мне нужно, например, четыре режима и четыре обработчика соответственно. Выходит реализовать прерывание непосредственно с кнопки не получится в любом случае? Нужно считать нажатия и переключать какие-нибудь пины мк, которые настроены на вход, а их замыкать на еще какие нибудь пины, которые настроены на выход и уже будут вызывать прерывания своим состоянием? Тем не менее на счет дребезга все равно прошу ответить. Спасибо.
_________________ Я конечно все понимаю, но этого я не понимаю.
Зачем вам прерывание? Опрашивайте кнопку в основном цикле . Я фильтрую дребезг опрашивая кнопку 200 раз(примерно) в сек, как только 10-20 раз подряд кнопка считалась как нажатая(0 или 1 , в зависимости от подключения), то флажок короткого нажатия "+" ; 200 раз считалась как нажатая - флажок длинного нажатия "+". При таком подходе не нужен кондер на кнопке. Частота опроса задается таймером, обычно тем , который формирует задержки. Можно использовать 1 вход МК и АЦП.
_________________ У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Допустим так, для начала. Проблема в том, что при нажимании кнопки горят все светодиоды, а при отпускании загорается рандомный из трех. То есть при одном нажатии у меня кнопка фактически нажимается большое неопределенное количество раз. Может как-нибудь иначе опрашивать кнопку? В каком нибудь таймере?
_________________ Я конечно все понимаю, но этого я не понимаю.
Надо после первого срабатывания блокировать это прерывание на время успокоения контактов, что собственно и есть "подавление дребезга". Это так - теоретически. меня самого этот вопрос интересует, в плане написания микропотребляющих устройств. Поэтому более конкретно не отвечу.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Пт фев 16, 2018 04:28:06
Это не хвост, это антенна
Карма: 6
Рейтинг сообщений: 83
Зарегистрирован: Ср сен 03, 2008 21:42:17 Сообщений: 1351 Откуда: Ленинградская область,пос.Красный Остров
Рейтинг сообщения:0
Достались две китайские отладочные платы с stm32,хочу к делу пристроить,тем более что stlink у меня есть,да и некоторый опыт в общении с микроконтроллерами тоже. Вопрос: может кто-то видел уже срисованную схему этих плат? А то я даже не знаю что у гугла спрашивать. Или всё же придется самому с микроскопом посидеть...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения