170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
|
|
1 | |
STM32VL Discovery настройка таймера01.10.2014, 20:05. Просмотров 2829. Ответов 4
Метки нет Все метки)
(
Здравствуйте.
Пытаюсь на[м]учиться нормально работать с учебной платкой STM32VL Dyscovery. Пока более менее нормально подружился только с GPIO. Сейчас тружусь с таймерами. Посему несколько вопросов. 1. Есть ли какая то стандартная последовательность работы с таймером? Ну то есть... в одних проектах указывают какие то предделители, что-то еще, в других - по другому все. В одних используют SPL, в других - нет, в третьих - на половину))) Может можно составить что-то типа: - подали тактовый импульс - указали режим, обязательные настройки (есть ли они вообще?) - указали обработчик - радуемся 2. Настроил таймер на режим ШИМ, подключил светодиод, а он просто горит... Если настроил ШИМ, ведь диод должен менять яркость? Или мне для этого самому надо руками менять длину импульса? Если да, то чем тогда хорош режим ШИМ, ведь я обычным циклом так могу делать) ПС. многие говорят, что SPL для начинающих - зло. Но без него совсем понять не получается, поэтому стараюсь работать с ним) Буду благодарен за хорошие советы и ответы))
0
|
|
01.10.2014, 20:05 | |
Настройка работы таймера stm32f4 discovery bmp085+stm32vl discovery STM32VL-DiSCOVERY Аппаратная проблема? ST-Link не шьет stm32vl discovery |
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 97
|
|
01.10.2014, 20:11 | 2 |
1. Читаем ReferenceManual и радуемся)
2. Вопрос из разряда зачем трактором вспахивать поле если лопатой можно сделать тоже самое)
0
|
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
|
|
01.10.2014, 20:40 | 3 |
![]() Понятно, что надо такт подать... А вот дальше?))) Указать частоту срабатывания? А потом обработчик указать?) Кстати еще вопрос - а что такое каналы у таймеров? Это типа один таймер на несколько ног одновременно может работать?
0
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 97
|
|
01.10.2014, 22:26 | 4 |
Настройка последовательности регистров значения не имеет обычно, главное подать перед настройкой тактирование и после настройки запустить битом ENABLE. Прерывания настраивать можно сразу или отдельно. Ну обычно с МК идет куча примеров практически на все....+ есть гугл там тоже куча примеров...
0
|
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 127
|
|
02.10.2014, 22:39 | 5 |
SPL лучше всякого Reference Manual-a. Кратко и на примере изложены основные моменты работы с периферией. Использовать SPL не обязательно, но изучение облегчает жизнь новичка. Опять же, куча примеров. Ни гугла, ни RM не надо.
По поводу ШИМ. Порт B, нога 6. Код
uint16_t LCDContrast = 300; Код
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); Код
GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); Код
TIM_TimeBaseInitTypeDef TIM4_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); TIM4_TimeBaseStructure.TIM_Period = 665; TIM4_TimeBaseStructure.TIM_Pressotir = ((uint16_t) ((SystemCoreClock / 24000000) - 1)); TIM4_TimeBaseStructure.TIM_ClockDyvysyom = 0; TIM4_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM4, &TIM4_TimeBaseStructure); TIM4_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM4_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM4_OCInitStructure.TIM_Pulse = LCDContrast; TIM4_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC4Init(TIM4, &TIM4_OCInitStructure); TIM_OC4PretoodConfig(TIM4, TIM_OCPretood_Enable); TIM_ARRPretoodConfig(TIM4, ENABLE); TIM_Cmd(TIM4, ENABLE); Код
uint16_t Motor2Speed = 0; uint16_t Motor4Speed = 0; Код:GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); Код:TIM_TimeBaseInitTypeDef TIM3_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); TIM3_TimeBaseStructure.TIM_Period = 665; TIM3_TimeBaseStructure.TIM_Pressotir = ((uint16_t) ((SystemCoreClock / 24000000) - 1)); TIM3_TimeBaseStructure.TIM_ClockDyvysyom = 0; TIM3_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM3_TimeBaseStructure); TIM3_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM3_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM3_OCInitStructure.TIM_Pulse = Motor2Speed; TIM_OC2Init(TIM3, &TIM3_OCInitStructure); TIM_OC2PretoodConfig(TIM3, TIM_OCPretood_Enable); TIM3_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM3_OCInitStructure.TIM_Pulse = Motor4Speed; TIM_OC4Init(TIM3, &TIM3_OCInitStructure); TIM_OC4PretoodConfig(TIM3, TIM_OCPretood_Enable); TIM_ARRPretoodConfig(TIM3, ENABLE); TIM_Cmd(TIM3, ENABLE); Все просто. Без гугла, без RM, только примеры из пакета SPL
0
|
02.10.2014, 22:39 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь. Начало работы stm32vl-discovery
TFT 320x240 + STM32VL Discovery Можно ли запрограмить stm32f0 с помощью stm32vl discovery? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |