Ну и вообще ШИМ брать непосредственно с ноги МК не есть гуд, нужно ставить ключ обязательно.
STM32 новичку в ARM что к чему
- Сообщения: 830
- Зарегистрирован: Пт ноя 16, 2007 11:21:37
Естественно! откуда у тебя там 5В появится если камень от 3,3В питается???
Ну и вообще ШИМ брать непосредственно с ноги МК не есть гуд, нужно ставить ключ обязательно.
Ну и вообще ШИМ брать непосредственно с ноги МК не есть гуд, нужно ставить ключ обязательно.
- Реклама
Спасибо, Pavel_1978.
Если честно, то схемотехнику этой платы я не смотрел...
( привык уже к AVR-кам )
А какой ключ посоветуешь? ( у меня в наличии только десято IRFZ44N, да парочку IRF540N ) Хотя для этой цели IRFZ44N должен подойти..
Если честно, то схемотехнику этой платы я не смотрел...
А какой ключ посоветуешь? ( у меня в наличии только десято IRFZ44N, да парочку IRF540N ) Хотя для этой цели IRFZ44N должен подойти..
не зная броду не лезь к вольтмоду
- Сообщения: 830
- Зарегистрирован: Пт ноя 16, 2007 11:21:37
Это слишком мощные, пред ними надо управляющий ключик лепить. Какой ток у сервы?
тебе подойдет полевичек в корпусе SOT-23.
тебе подойдет полевичек в корпусе SOT-23.
Ток сервы от одного ампера...
Тут полноценный драйвер по хорошему нужно собрать..
Тут полноценный драйвер по хорошему нужно собрать..
не зная броду не лезь к вольтмоду
- Сообщения: 830
- Зарегистрирован: Пт ноя 16, 2007 11:21:37
С этого и надо было начинать! Конечно нужно ставить нормальный ключ, схем тут на форуме как грязи.
- Реклама
Вот, может кому пригодится http://easyelectronics.ru/upravlenie-mo ... ast-3.html
не зная броду не лезь к вольтмоду
Прошу помощи,ибо не могу понять что делать. В программе реализовано внешнее прерывание от GPIOB_PIN0 (надеюсь я правильно его выставил). Проблема в том, что МК постоянно в прерывании, основную программу вообще не выполняет. Вывод GPIOB_PIN0 я повесил на землю. Если запретить прерывание основная программа выполняется. В чем может быть ошибка?
Код: Выделить всё
int main()
{
//Включим тактирование PORTA и PORTB
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN , ENABLE);
GPIOB->CRH = 0b110011001100110011001100110011;// конфигурация режима работы старшей группы порта B
GPIOB->CRL = 0b1000;// конфигурация режима работы младшей группы порта B
GPIOA->CRL = 0b110011001100110011001100110011;// конфигурация режима работы младшей группы порта A
GPIOA->CRH = 0b110011001100110011001100110011;// конфигурация режима работы младшей группы порта A
AFIO->EXTICR[0]|=AFIO_EXTICR1_EXTI1_PB;
EXTI->IMR|=EXTI_IMR_MR0 ;
EXTI->RTSR|=EXTI_RTSR_TR0; //Прерывание по нарастающему фронту
NVIC_EnableIRQ (EXTI0_IRQn);//Разрешаем прерывания
while(1)
{
//Основная программа
}
}
// Обработчик прерывания EXTI0
void EXTI0_IRQHandler(void)
{
// мой обработчик (мигаю светодиодами с помощью GPIOB 8..15)
}
nossudak, флаг прерывания сбрасываете в обработчике?
Ставим плюсы: )
Нет
А как, можно спросить?
When the selected edge occurs on the external interrupt line, an interrupt request is generated. The pending bit corresponding to the interrupt line is also set. This request is reset by writing a ‘1’ in the pending register.
"Я не даю готовых решений, я заставляю думать!"(С)
nossudak
если обработчик прерывания обрабатывает несколько линий
Код: Выделить всё
void EXTI0_IRQHandler(void)
{
// мой обработчик (мигаю светодиодами с помощью GPIOB 8..15)
EXTI->PR = EXTI_Line0;
}
Код: Выделить всё
void EXTI9_5_IRQHandler(void)
{
if ((EXTI->PR & EXTI_Line7) != (uint32_t)RESET)
{
// наш код
EXTI->PR = EXTI_Line7;
}
if ((EXTI->PR & EXTI_Line9) != (uint32_t)RESET)
{
// наш код
EXTI->PR = EXTI_Line9;
}
}
Иван Сусанин - первый полупроводник 
Спасибо, сделал как вы сказали, все стало работать как положено.
И снова я
При сборке проекта в кокосе выдает ошибку 'TIM6_IRQn' undeclared (first use in this function) . Работаю на STM32F103C8. Вроде библиотеки нужные подключил, TIM6 в моем камне есть..
Что не так здесь?
Код: Выделить всё
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_tim.h"
int main(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
TIM6->PSC = 24000 - 1; //Настройка делителя на 1000 "тиков" в секунду
TIM6->ARR = 1000; //Отработка прерывания раз в секунду
TIM6->DIER |= TIM_DIER_UIE; //Разрешения прерывание от таймера
TIM6->CR1 |= TIM_CR1_CEN; //Запуск таймера
NVIC_EnableIRQ(TIM6_IRQn); //Разрешение TIM6_DAC_IRQn прерывания
}
Нету там TIM6
. Только TIM1,2,3,4
Иван Сусанин - первый полупроводник 
http://www.st.com/web/catalog/mmc/FM141 ... 5/PF164476
http://www.st.com/web/en/catalog/mmc/FM141/SC1169
http://www.st.com/web/en/catalog/mmc/FM141/SC1169
Иван Сусанин - первый полупроводник 
- Сообщения: 232
- Зарегистрирован: Вт май 08, 2012 10:42:29
Ребята подскажите ни как не въеду мк STM32F103C6 конфигурирую порт В, 0-6 выводы настраиваю на вход подтяжка к плюсу, все ноги работают кроме В_3, замеры с наружи показывают на всех еденицы кроме 3 вывода, всю плату просмотрел ногу поднимал, с наружи пробовал внешним резистором подтянуть, бесполезно! IDR в ноле. Ну думаю проц дохлый попался перепаял результат тот же! Может кто сталкивался с такой ситуацией?
Попробовал перестроить на выход и загнать 1 такая же картина на выходе ничего нет!
Попробовал перестроить на выход и загнать 1 такая же картина на выходе ничего нет!
- Вложения
-
- В_3.JPG
- (255.73 КБ) 331 скачивание
- Сообщения: 145
- Зарегистрирован: Ср фев 01, 2012 10:55:53
PB3 после RESETа настроен как JTDO, чтобы он стал GPIO надо установить биты SWJ _CFG [2:0] регистра AFIO_MAPR в значение 100. В подробностях это описано в "Reference manual" (RM0008) в разделе 9.3.5 JTAG/SWD alternate function remapping.
- Сообщения: 232
- Зарегистрирован: Вт май 08, 2012 10:42:29
Спасибо большое добрый человек! а то я тут с бубнами вокруг танцую понять не могу в чем проблема, уже на другую ногу собрался перелезать!!! Спасибо!
Да вот лекарство может кому сгодится! GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
Да вот лекарство может кому сгодится! GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
- Сообщения: 8
- Зарегистрирован: Сб мар 14, 2009 01:39:19
Здравствуйте. Прошу помощи. Купил вот такую плату http://ru.aliexpress.com/item/stm32f100 ... 81979.html она без всего.
С чего начать, как заливать код? Можно ли пользоваться ft232 или обязательно нужен St-link.
ARM вообще в первый раз вижу, для меня сейчас всё шок )))
С чего начать, как заливать код? Можно ли пользоваться ft232 или обязательно нужен St-link.
ARM вообще в первый раз вижу, для меня сейчас всё шок )))


