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

 
 
> ШИМ в STM32F4
stm32f4
сообщение Aug 13 2012, 11:45
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 11-08-12
Пользователь №: 73 098



Всем привет!Битый час сижу и не могу настроить ШИМ(
Пытаюсь настроить шим на ноге РА2, вроде все сделал как в даташите, но.............
Код
//***********TIM2***************
    RCC->APB1ENR    |=RCC_APB1ENR_TIM2EN;        // тактирование таймера
    GPIOA->MODER    |=0x4;
    TIM2->CR1        |= TIM_CR1_CMS;                // выравнивание по центру
    TIM2->PSC         = 16000-1;
    TIM2->ARR        = 0xFF;                        // счетный регистр (период шима)
    TIM2->CCMR2        |= TIM_CCMR2_OC3CE;            // !
    TIM2->CCMR2        |= TIM_CCMR2_OC3M;            // инвертированный шим
    TIM2->CCER         |= TIM_CCER_CC3E;            // разрешаем таймеру использование ШИМ
    TIM2->CR1         |= TIM_CR1_CEN;                // запуск таймера
    TIM2->CR1         |= TIM_CR1_ARPE;            // разрешаем перезагрузку ARR
    TIM2->CCR3        =0x1F;

Я правильно понимаю?, чтобы запустить шим на ноге РА2(канал СН3) мне нужно работать с регистроми CCMR2, ну и CCR3 !

Сообщение отредактировал stm32f4 - Aug 13 2012, 11:47
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sidy
сообщение Aug 13 2012, 15:21
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333



Тактирование порта GPIOA разрешено? Счет таймера TIM2 разрешен? GPIOA настраивается на альтернативную функцию, а какая именно альтернативная функция где-нибудь задается?

Сообщение отредактировал sidy - Aug 13 2012, 15:24
Go to the top of the page
 
+Quote Post
stm32f4
сообщение Aug 13 2012, 15:22
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 11-08-12
Пользователь №: 73 098



Цитата(sidy @ Aug 13 2012, 19:21) *
Тактирование порта GPIOA разрешено?

угу)
Go to the top of the page
 
+Quote Post
adnega
сообщение Aug 13 2012, 15:33
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(stm32f4 @ Aug 13 2012, 19:22) *
угу)

Да ну!
Можете прокомментировать назначение строчки
Код
GPIOA->MODER    |=0x4;
?
По-моему, ни к PA2, ни к выбору альтернативной функции она отношения не имеет...
Go to the top of the page
 
+Quote Post
stm32f4
сообщение Aug 13 2012, 16:11
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 11-08-12
Пользователь №: 73 098



Цитата(adnega @ Aug 13 2012, 19:33) *
Да ну!
Можете прокомментировать назначение строчки
Код
GPIOA->MODER    |=0x4;
?
По-моему, ни к PA2, ни к выбору альтернативной функции она отношения не имеет...

ну что вы laughing.gif я, конечно, совсем новичок, но тактирование порта я включать умею)
Код
RCC->AHB1ENR    |= RCC_AHB1ENR_GPIOAEN;

ну а по поводу регистра MODER я, таким образом, хотел наложить маску, дабы определить ногу PA2 как выход- хотя тут да!!!! протупил xDDD
нужно было наложить 0х10 )Спасибо большое за замечание)
Кстати по поводу регистра MODER, я в даташите не нашел указаний по поводу конфигурации ног порта, т.е ШИМ должен работать при любой конфигурации регистра MODER.


Go to the top of the page
 
+Quote Post
adnega
сообщение Aug 13 2012, 16:35
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(stm32f4 @ Aug 13 2012, 20:11) *
ну что вы laughing.gif я, конечно, совсем новичок, но тактирование порта я включать умею)
Код
RCC->AHB1ENR    |= RCC_AHB1ENR_GPIOAEN;

ну а по поводу регистра MODER я, таким образом, хотел наложить маску, дабы определить ногу PA2 как выход- хотя тут да!!!! протупил xDDD
нужно было наложить 0х10 )Спасибо большое за замечание)
Кстати по поводу регистра MODER, я в даташите не нашел указаний по поводу конфигурации ног порта, т.е ШИМ должен работать при любой конфигурации регистра MODER.

Вы же аппаратный ШИМ от таймера решили задействовать?
Тогда Вам нужно "Alternate function mode", а это маска (2 << (2 * 2)) == 0x20.
И не забудьте GPIOA->AFRL = (1 << (2 * 4)) == 0x100.
Рекомендую прочитать/посмотреть datasheet (DS) в районе 58 страницы.
И Reference manual (RM) в районе 139 страницы (и ниже).

PS. Советую неспеша разобраться с предметной областью самостоятельно, а не заводить "лишние" темы на форуме.
Вопросы лучше задавать конкретные: хочу сделать то-то, делаю так-то, не получаетя.
Проверьте досконально свой код на предмет опечаток, описок, соответствия DS и RM.

До ШИМа каких-нить успехов достигли? Ну, там, светодиоды позажигать получилось ли...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- stm32f4   ШИМ в STM32F4   Aug 13 2012, 11:45
|- - stm32f4   Цитата(adnega @ Aug 13 2012, 20:35) Вы же...   Aug 14 2012, 09:24
- - adnega   КодGPIOA->AFR[1] Нужно GPIOA->AFR[...   Aug 14 2012, 09:39
|- - stm32f4   Цитата(adnega @ Aug 14 2012, 13:39) КодGP...   Aug 14 2012, 10:23
|- - adnega   Цитата(stm32f4 @ Aug 14 2012, 14:23) Воу,...   Aug 14 2012, 11:25
|- - stm32f4   Цитата(adnega @ Aug 14 2012, 15:25) Это н...   Aug 14 2012, 12:58
|- - adnega   Цитата(stm32f4 @ Aug 14 2012, 16:58) Ого,...   Aug 14 2012, 16:27
|- - stm32f4   Цитата(adnega @ Aug 14 2012, 20:27) Может...   Aug 15 2012, 10:50
- - BlackOps   тут небольшой вопрос хотел бы уточнить, чтоб новой...   Aug 23 2012, 05:11
- - BlackOps   мне кажется что клок таймера ТИМ3 = клок периферии...   Aug 23 2012, 06:23
|- - adnega   Цитата(BlackOps @ Aug 23 2012, 10:23) мне...   Aug 23 2012, 07:08
- - BlackOps   ясно, спасибо.   Aug 23 2012, 07:13


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

 


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


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