Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 1
Регистрация: 20.03.2017
Сообщений: 121
1

Мигание светодиодов

31.05.2018, 15:59. Показов 2119. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Использую МК STM32103C8T6. Согласно схеме светодиоды находятся на порту B, на 0 и 1 пинах. Но есть некоторые вопросы.

1) Настраиваю 0 и 1 пины порта на выход с открытым коллектором, максимальная скорость - 2МГц. Никакие библиотеки не использую. Как мне нужно настроить остальные (неиспользуемые) ножки порта?
C
1
 GPIOB->CRL =0x66666666;
Но так я настраиваю все ножки. А зачем мне настраивать все если мне нужны только две?
C
1
2
 GPIOB->CRL |= (1<<1)|(1<<2)|(1<<5)|(1<<6);
 GPIOB->CRL &= ~((1<<0)|(1<<3)|(1<<4)|(1<<7));
Можно ли так настраивать? Как надо?

2) Хочу поочередно мигать светодиодами. Опять же, как лучше писать, и можно ли так писать вообще?
C
1
2
3
4
5
6
 GPIOB->BRR &= ~(1<<1);
 GPIOB->BSRR |= (1<<0);
...задержка...
 GPIOB->BRR &= ~(1<<0);
 GPIOB->BSRR |= (1<<1);
...задержка...
Или лучше так? Правильно ли я использую BSRR?
C
1
2
3
4
  GPIOB->BSRR = 0x00020001;
...задержка...
  GPIOB->BSRR = 0x00010002;
...задержка...
Или лучше использовать ODR?
C
1
2
3
4
  GPIOB->ODR = 0x0001;
...задержка...
  GPIOB->ODR = 0x0002;
...задержка...
Миниатюры
Мигание светодиодов   Мигание светодиодов  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2018, 15:59
Ответы с готовыми решениями:

мигание светодиода stm32cubeide
Приветствую! Помогите, пожалуйста! Имеется отладочная плата nucleo L152RE и среда stm32cubeide....

Управление яркостью светодиодов ШИМ
Нужна помощь с генерацией ШИМ. Примерно понимаю что к чему, но все это делается без самой stm32,...

Мигание с прерыванием из таймера 3 (TIM3).
Я начал осваивание работу с прерываниями на STM32VL Dyscovery. Хотел помигать диодом с...

периодическое мигание LED с таймером 100 мс
здр.. как только Cortex-M4 сбросится, SysTick таймер заставит навсегда LEDы периодически мигать в...

STM 32L1Discovery. Реализовать переключение светодиодов с некоторой частотой
Есть задание: Реализовать переключение светодиодов с некоторой частотой. По нажатию кнопки «USER»...

2
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
31.05.2018, 16:48 2
Цитата Сообщение от lipton_v Посмотреть сообщение
и можно ли так писать вообще?
Цитата Сообщение от lipton_v Посмотреть сообщение
GPIOB->BRR &= ~(1<<1);
нет
регистры BRR и BSRR предназначены для управления ножками без чтения/ модификация/ запись
правильно писать так
C
1
2
3
4
5
6
 GPIOB->BRR = 1<<1;
 GPIOB->BSRR =1<<0;
...задержка...
 GPIOB->BRR =1<<0;
 GPIOB->BSRR = 1<<1;
...задержка...
или можно так
Цитата Сообщение от lipton_v Посмотреть сообщение
C
1
2
3
4
GPIOB->BSRR = 0x00020001;
...задержка...
* GPIOB->BSRR = 0x00010002;
...задержка...
Цитата Сообщение от lipton_v Посмотреть сообщение
Или лучше использовать ODR?
в данной задаче можно
смотри как тебе удобней
а в задачах где используется несколько потоков
использование ODR может привести к неприятным последствиям
Цитата Сообщение от lipton_v Посмотреть сообщение
Как мне нужно настроить остальные (неиспользуемые) ножки порта?
так же как они стоят по умолчанию (0x04) вход
C
1
GPIOB->CRL =0x44444466;
0
1 / 1 / 1
Регистрация: 20.03.2017
Сообщений: 121
01.06.2018, 19:18  [ТС] 3
Если неиспользуемые ножки уже настроены по умолчанию, тогда их можно не настраивать? Можно ли тогда писать так:
C
1
2
GPIOB->CRL |= (1<<1)|(1<<2)|(1<<5)|(1<<6);
GPIOB->CRL &= ~((1<<0)|(1<<3)|(1<<4)|(1<<7));
Или это плохой вариант?
0
01.06.2018, 19:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2018, 19:18
Помогаю со студенческими работами здесь

7 бегущих светодиодов из 8
Дали такую задачу: 7 бегущих светодиодов туда-сюда по линейке из 8 светодиодов. Пока пытаюсь...

Переключение светодиодов
Привет всем. Подскажите, пожалуйста, что делаю не так. При отладке &quot;гаснет&quot; 5ый светодиод и...

Мигание светодиодом(ми)
и так... начитался я всякой всячины, насмотрелся видео на сайтах и захотелось чего то большего......

Мигание светодиода
Прошу помочь исправить ошибки в лаб.работе! Очень важно( сама не могу разобраться. Содержание...

Последовательное зажигание светодиодов
Собственно задание: при включении МК светодиоды не горят, через 2 с загораются 1-й, затем...

Скорость зажигания светодиодов
Здравствуйте форумчани, заранее извиняюсь если такой вопрос был. Вообщем стояла задача сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru