yoyokurt

stm32f4-discovery - не двигается сервопривод

16.07.2013, 18:57. Показов 4014. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Долго мучаюсь не могу двинуть серву. подскажите пожалуйста что не так.(серва подключена к ножке PB11)

#include "stm32f4xx.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#define SERVO_180 8200
#define SERVO_0 1800
void set_pos(uint8_t pos) {
uint32_t tmp=(SERVO_180 - SERVO_0) /180 ;
TIM2->CCR2 = SERVO_0 + tmp * pos;
}
void delay(void) {
volatile uint32_t i;
for (i=1; i != 0xFFFF; i++)
;
}
int main()
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP IOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TI M2,ENABLE);
GPIO_InitTypeDef PORT;
PORT.GPIO_Pin = (GPIO_Pin_11);
PORT.GPIO_Mode = GPIO_Mode_AF;
PORT.GPIO_Speed = GPIO_Speed_2MHz;
PORT.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOA, &PORT);
TIM2->CCER |= (TIM_CCER_CC2E);
TIM2->CCMR1|= (TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2);
TIM2->PSC = 6;
TIM2->CR1 |= TIM_CR1_CEN;
uint8_t i;
while(1)
{
for (i=0;i<=180;i++) {
delay();
set_pos(i);
}
}
}
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.07.2013, 18:57
Ответы с готовыми решениями:

STM32F4+сервопривод+ШИМ
Начал разбираться с таймерами и шим. Диоды плавно зажигал и гасил без проблем. Решил завести под это дело сервопривод. Во-первых я не...

STM32F4 как крутить сервопривод?
Взял пример работы с шимом, вроде лампочки моргают... так как лампочки находятся на портах PD 12-15 Я переконфегурировал порты на 1-2,...

Осциллограф на STM32F4-Discovery
Хотел прикупить недорогой китайский usb осцилл, да вот вспомнил что есть дискавери в запасах. Вопрос, видел ли кто реализацию осцилла на...

2
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 34
16.07.2013, 19:25
Для кручения сервоприводом, Вам нужно подавать импульсы от 1ms до 2ms каждые 20ms с частотой ~50 Гц. Скорее всего, тут не выдержаны тайминги или неправильно настроена система тактирования. Попробуйте так:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
 
GPIO_InitTypeDef gpio;
gpio.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_Mode = GPIO_Mode_AF;
gpio.GPIO_Speed = GPIO_Speed_100MHz;
 
GPIO_Init(GPIOD, &gpio);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_TIM4);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_TIM4);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_TIM4);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_TIM4);
 
TIM_TimeBaseInitTypeDef timer;
TIM_TimeBaseStructInit(&timer);
timer.TIM_Pressotir = 800 - 1;
timer.TIM_Period = 2000;
TIM_TimeBaseInit(TIM4, &timer);
 
TIM_OCInitTypeDef channel;
channel.TIM_OCMode = TIM_OCMode_PWM1;
channel.TIM_OutputState = TIM_OutputState_Enable;
channel.TIM_Pulse = 100;
channel.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM4, &channel);
TIM_OC1PretoodConfig(TIM4, TIM_OCPretood_Enable);
 
TIM_CtrlPWMOutputs(TIM4, ENABLE);
TIM_Cmd(TIM4, ENABLE);
 
TIM_SetCompare1(TIM4, 150); //так менять скважность
UPD: Проверил на STM32F4Dyscovery. Частота ядра 160MHz. Правда, прикрутил двигатель с ESC, но сервопривод управляется аналогичным способом.
0
timommtymi
15.08.2013, 21:15
А можно код целой программы? я только начал изучать stmки и вабще тут понять ничешо никак не могу
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.08.2013, 21:15
Помогаю со студенческими работами здесь

АЦП STM32F4-Discovery
Раньше с МК дело не имел. Заинтересовало - начал разбираться, взял STM32F4-Dyscovery. И вот как пришло время разобраться с АЦП - застрял....

STM32F4-Discovery и CoIDE1.6.0
Делать сейчас пока нечего, достал платку, подключил, написал код. Кокос точно очищивает флеш, потому что предыдущая прошивка перестала...

STM32F4 discovery не отлаживается
купил подключил к coosox. не отлаживается. пишет - No source available for &quot;&quot; fffffffc: Unable to retrieve disassembly data from...

Микрофон STM32F4 Discovery
Здравствуйте, приобрел себе плату STM32F407VGT6. На ней стоит микрофон. Вопрос: Как с него принимать данные в цифровом формате? Он...

STM32f4-discovery DDS
День добрый. Решил сгенерировать синус, используя ST32F429 (отладочная плада stm32f4-discovery). #include &quot;stm32f4xx.h&quot; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru