| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > мигание светодиодом на STM32F100RET6B |
| Автор: supercelt 20.2.2016, 21:58 | ||||
| Добрый! Вопрос наверное для вас простой, а у меня затык. Начал учить stm32. Пробую мигать.
Этот код выполняется норм. Но вот я прочитал, что если выставлять ODR напрямую, то он занимает слишком много тактов и лучше работать через регистр BSRR
Вот так не работает. В чём тут дело? |
| Автор: baldman88 24.2.2016, 08:31 | ||||
В BSRR за сброс отвечают старшие 16 бит (именно их нужно выставлять в единицу). То есть нужно что-то вроде:
Либо с помощью BRR:
|
| Автор: supercelt 26.2.2016, 17:44 |
| не работает(( регистр bsrr не устанавливается и odr соответственно |
| Автор: baldman88 26.2.2016, 19:53 | ||
На платке, что под рукой, светодиод как раз подключен к PA1.
Все работает -- светодиод мигает. |
| Автор: supercelt 26.2.2016, 20:19 |
| Уважаемый baldman88 , спасибо за ответ) У меня нет платки. У меня только визуальный отладчик в кейле. Я копернул ваш код и он ну как бы тоже не работает. Хотя я вот не знаю должен ли визуальный отладчик показывать забивание регистра BSRR. Я прилепляю картинку, там справа обвёл. Если я прописываю GPIOA->ODR = 0x2; то при отладке видно как бит ставится (справа), но я не хочу записывать в ODR, хочу работать через BSRR. если прописываю GPIOA->BSRR = 0x2; то справа ничего не видно. И я не понимаю работает ли выход или нет |
| Автор: baldman88 26.2.2016, 21:39 |
| Кейла нет, поэтому сказать ничего не могу. Возможно его эмулятор не реализует такой функционал. Лучше все же сразу брать маленькую плату и программатор, тем более, что у китайцев стоят они сущие копейки. Да и впечатления, когда оно работает в живую, причем так, как нужно, ни в кокое сравнение не идут с впечатлениями от эмуляторов. |