Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32L-DISCOVERY
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
netremo
Всех приветствую.

Помогите разобраться. Начал пробовать силы в программировании мк и мозг ужо вскипел.

Как на STM32L-152 включить тактирование gpio?

Хочу поморгать светодиодом...

Если не сложно помогите примером.

#include "stm32l1xx.h" - именно L а не F.
Лампочка на порту PB7.

Люто всех заранее благодарю.
Flexz
Что мешает скачать "Standard Peripheral Library", с которой идет уйма примеров обо всем, и поизучать/позапускать их?
http://www.st.com/internet/com/SOFTWARE_RE...dperiph_lib.zip
netremo
Скачивал, но утонул в море информации.. Ещё есть даташит на 600 стр по этому мк, но как во всё это сразу вьехать не знаю.

Если кому-то не лениво - подскажите. Думаю не только мне будет интересно.
netremo
Помогите разобраться почему светодиод на порту PB6 не горит... Я уже мозг сломал...

Плата - stm32l-discovery

#include "stm32l1xx.h"
int main(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER |= GPIO_MODER_MODER6_1 ;
GPIOB->OTYPER |= GPIO_OTYPER_OT_6;//CCCCCCCCCCCCCCCCC
GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6;

while(1){
GPIOB->BSRRL = GPIO_BSRR_BS_6;
}

return(0);
}
GMVM
Посмотри как настроил вывод, нужно output push/pull. Кстати, например на olimex'овских отладках светодиоды сидят на VDD а не VSS.
lexanet
Цитата(netremo @ Aug 11 2011, 21:39) *
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;


Вроде так надо:

RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;

Хотя, может и не прав, только заметил что дискавери L, а у меня обычная.
Nitrotoluol
CODE

//Разрешаем тактирование
RCC->AHBENR |= (RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOAEN);
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;

//Настраиваем PB6 и SYSCFG к которому относится PA0-кнопка user
GPIOB->MODER |= GPIO_MODER_MODER6_0;
GPIOB->OTYPER &=~GPIO_OTYPER_ODR_6;

SYSCFG->EXTICR[0] &= ~SYSCFG_EXTICR1_EXTI0_PA;
EXTI->RTSR |= EXTI_RTSR_TR0;
EXTI->FTSR |= EXTI_FTSR_TR0;

EXTI->IMR |= EXTI_IMR_MR0;
EXTI->EMR &= ~EXTI_EMR_MR0;

while(1)
{
//Загорается светодиод покуда не отпустим кнопку
if(GPIOA->IDR & GPIO_OTYPER_IDR_0)
//GPIOB->BSRRL=GPIO_BSRR_BS_6; <- так не делают
GPIOB->ODR|=GPIO_OTYPER_ODR_6;
else
GPIOB->ODR&=~GPIO_OTYPER_ODR_6;
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.