реклама на сайте
подробности

 
 
> STM32L-DISCOVERY, Начало начал - подмигиваем.
netremo
сообщение Aug 9 2011, 14:03
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 9-02-11
Пользователь №: 62 835



Всех приветствую.

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

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

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

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

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

Люто всех заранее благодарю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Flexz
сообщение Aug 9 2011, 15:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797



Что мешает скачать "Standard Peripheral Library", с которой идет уйма примеров обо всем, и поизучать/позапускать их?
http://www.st.com/internet/com/SOFTWARE_RE...dperiph_lib.zip
Go to the top of the page
 
+Quote Post
netremo
сообщение Aug 10 2011, 08:20
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 9-02-11
Пользователь №: 62 835



Скачивал, но утонул в море информации.. Ещё есть даташит на 600 стр по этому мк, но как во всё это сразу вьехать не знаю.

Если кому-то не лениво - подскажите. Думаю не только мне будет интересно.
Go to the top of the page
 
+Quote Post
netremo
сообщение Aug 11 2011, 17:39
Сообщение #4





Группа: Участник
Сообщений: 14
Регистрация: 9-02-11
Пользователь №: 62 835



Помогите разобраться почему светодиод на порту 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);
}
Go to the top of the page
 
+Quote Post
GMVM
сообщение Aug 13 2011, 15:19
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 4-07-10
Пользователь №: 58 276



Посмотри как настроил вывод, нужно output push/pull. Кстати, например на olimex'овских отладках светодиоды сидят на VDD а не VSS.
Go to the top of the page
 
+Quote Post
lexanet
сообщение Aug 14 2011, 03:40
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 6-04-11
Пользователь №: 64 159



Цитата(netremo @ Aug 11 2011, 21:39) *
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;


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

RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;

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

Сообщение отредактировал lexanet - Aug 14 2011, 03:44
Go to the top of the page
 
+Quote Post
Nitrotoluol
сообщение Aug 24 2011, 05:51
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 20-05-08
Из: Украина
Пользователь №: 37 661



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;
}
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016