Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/35: Рейтинг темы: голосов - 35, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141

Интерфейс для энкодера на STM32F107.

29.03.2016, 10:44. Показов 6468. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно считать два инкриментальных АБ энкодера.
Я так понял что есть таймеры которые можно использовать для считывания энкодеров. (TIM2 to TIM5). Кто нибудь делал это на STM32? есть ли какие нибудь подводные камни? может у кого нибудь есть пример?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2016, 10:44
Ответы с готовыми решениями:

stm32f107 настройки для ads7843
Помогите настроить частоту SPI для тачскрина ads7843. При нескольких вариантах psc SPI получаю данные, но не могу понять, где данные...

Оптический датчик для энкодера
Доброе время суток! Так как не смог найти энкодер для мотор колеса (диаметр 250мм), решил реализовать сам инкрементный датчик. ...

У кого есть код для энкодера (с ускорением) ?
Быстро крутишь - больше шаг изменения,медленее - меньше. Поделитесь с обществом.

15
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
29.03.2016, 12:33
Примеров полно в документации. Подводных камней нет. Ничего кроме настройки таймеров, не потребуется.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
29.03.2016, 14:14
а вот сам принцип считывания. таймер 16 бит то есть посчитает до 65536.
на оверфлоу делать что то вроде этого?
ovf++;
encoder = 65536 * ovf;
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
29.03.2016, 14:26
Да что хотите можете делать, если вам разрядности не хватает. Можно решить эту проблему программным путем, естественно правильно решить, а не как у вас приведено. А можно объединить два таймера и сделать 32 разряда, STM32 это позволяет. Опять же, в документации все есть.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
29.03.2016, 14:37
Цитата Сообщение от okotimiv
Да что хотите можете делать, если вам разрядности не хватает. Можно решить эту проблему программным путем, естественно правильно решить, а не как у вас приведено. А можно объединить два таймера и сделать 32 разряда, STM32 это позволяет. Опять же, в документации все есть.
ну если в документации все есть тогда последний вопрос - форум зачем тогда?
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
29.03.2016, 15:44
Могу дать энкодер на F105.
Если надо.
0
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 34
29.03.2016, 16:14
Здесь туториал по подключению энкодера к f407, для вашего контроллера будет похоже.
http://etostys-notes.btogspot.com/p/cub ... rfosi.html

НО:
-использует CubeMX и HAL посему(если не боитесь, а тем более уже дофига людей пересело на него, так что надеюсь будет ок)
-использует таймер для подключения энкодера(некоторые таймеры имеют встроенный режим подключения энкодера). Так что 10 штук энкодеров таким методом не навешаете, таймеров не хватит
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
29.03.2016, 16:24
У меня, кстати, на таймере, SPL. Куб не использую.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
30.03.2016, 10:19
Цитата Сообщение от hd44780
Могу дать энкодер на F105.
Если надо.
было бы здорово.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
30.03.2016, 10:21
Цитата Сообщение от hd44780
У меня, кстати, на таймере, SPL. Куб не использую.
я тоже с кубом не работаю - пробовал и понял что это не для моего слабого здоровья.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
30.03.2016, 16:18
Ловите.
Общую ногу энкодера подключать к +Vcc.

[446 байт]

[2.63 Кб]
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
30.03.2016, 18:57
Цитата Сообщение от hd44780
Ловите.
Общую ногу энкодера подключать к +Vcc.
большое спасибо.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
30.03.2016, 20:36
Не за что.
0
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 22
13.04.2016, 09:19
У вас все получилось? Работает без подводных камней?

Отправлено с моего iPad используя Tapatalk
0
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 49
13.04.2016, 16:56
Лови энкодер для F4
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
void Encoder_init(void)
{
/* Enable GPIO clock */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE);
 
// PC.6,PC.7
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
GPIO_Init(GPIOC,&GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_TIM8);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_TIM8);
 
// TIM8
TIM_TimeBaseStructure.TIM_Pressotir = 0;
TIM_TimeBaseStructure.TIM_Period = ENC_PERIOD;
TIM_TimeBaseStructure.TIM_ClockDyvysyom = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure);
 
TIM_EncoderInterfosiConfig(TIM8, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
TIM8->CNT = 0;
TIM_Cmd(TIM8, ENABLE);
}
0
risit
16.04.2016, 19:55
Добрый вечер. Осваиваю Си и STM32f103 на SPL. Разбираюсь с энкодером, точнее с его режимами. И вот не врубаюсь так ли дожно быть.
Если в использую режим TIM_EncoderMode_TI12 то у меня щелчек туда увеличивает CNT на 1 а щелчек сюда уменьшает CNT на 3
Если в использую режим TIM_EncoderMode_TI2 то у меня щелчек туда увеличивает CNT на 1 а щелчек сюда уменьшает CNT на 1 то есть это самый вменяемый режим
Если в использую режим TIM_EncoderMode_TI1 то у меня щелчек туда увеличивает CNT на 2 а щелчек сюда не меняет CNT.
Все это наблюдаю в отладке СТлинком пишу в Кейле5
За основу брал настройки hd44780 но корректировал на TIM4 и соответственно PB6&PB7
Вопрос - я правельно понял эти режимы или их поведение должно быть иным
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2016, 19:55
Помогаю со студенческими работами здесь

Нужна прога для видео энкодера CISCO
Нужна прога управления CISCO CIVS-SENC-4P!! Помогите плиз!!! задача- снятие скринов с данного устройства. Заранее спасибо!!

Выбор контроллера STM32F373 для обработки данных с Энкодера
Приветствую! Комрады кто работал с нормальными энкодерами (от 100 импульсов на оборот) При частоте кварца 16 МГц, хватит ли...

STM32F107
Доброго времени суток всем! Люди, кто-нибудь досконально разобрался с MAC-процессором STM32F107? Я имею в виду понимание принципа...

USB_SIL_WRITE STM32F107
Добрый День! Начал разбираться с STM32F107. Решил написать программу по передаче данных с МК на ПК по запросу с ПК с помощью функции...

STM32F107 и I2C
в даташит в статус регистре бизи флаг это бит 1. соответственно возникает желание сделать так while (I2Cx->SR2 & 0x2) но в...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru