приобрел F3 discavery, запутался с софтом, посоветуйте в чем писать. Какое IDE + компилятор и все нужное для отладки?. Скачал кукокс но там нужного камня нет. Скачал библиотеку с сайта ST, положил в папку библиотек у кукокса. Семейство камней есть а выбора модели нету. 1) Стоит ли писать в кукоксе или нужно еще что то куда-то скопировать чтобы появился выбор камня? 2) Заменить кукокс на эклипс и танцевать с бубном вокруг эклиса? 3) Все это фигня и есть нормально ломаные IDE для ST32F3 cемейства? Вопщем запутался На данный момент окно выбора выглядит так
все эти кукоксы и прочие - ненужная фигня. для работы достаточно голого Эклипса с CDT плагином (а именно опцией GCC Cross-compilation). тулчейн - бесплатный Codesourcery. тип контроллера задается в опциях компилятора (Cortex-M0/M3/M4). поддержка конретного камня - в библиотеках от производителей (ST StdperiphLib для STM32F1/2/3/4). количество памяти для конкретного камня задается в скрипте линкера.
Последний раз редактировалось zöner Вс июл 14, 2013 19:01:35, всего редактировалось 1 раз.
Пробую ШИМ на плате STM32VL Discovery, сделал ремап на на PC8,9 от Tаймера3. Посредством кнопки PA0, увеличиваю или уменьшаю яркость светодиода PC9, только не пойму почему на краях (в начале и конце) регулируется через раз, в середине всё стабильно.Спойлер//======================== // Подключаем в код содержимое файлов //======================== #include "stm32f10x.h" // "stm32f10x.h" - Файл описания периферии #include "initall.h" // "initall.h" - инициализации портов и таймера #include "interrupt.h" // "interrupt.h" - обработчик прерывания
/**======================= * @описание : Обработчик прерывания по переполнению таймера SysTick. * @параметр : Нет * @возвр значение: Нет *=====================*/ void SysTick_Handler() { /* Обработка кнопки */ static unsigned button_cnt = 0; // счетчик периода нажатия if (Push_Button) // Если нажата кнопка { if (++button_cnt == 100) flag=!flag; // запускаем счетчик, если в этот период кнопка еще нажата } else button_cnt = 0; // инвертируем флаг, если нет обнуляем счетчик
int main(void)/*============ Основная программа ===========*/ { //---------- //Настройка Синего и зеленого светодиода на плате STM32-Discovery для использования ШИМ. //---------- RCC->APB2ENR |= RCC_APB2ENR_IOPCEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN; // Тактирование порта C и альтернативных функций GPIOC->CRH &= ~(GPIO_CRH_MODE8|GPIO_CRH_MODE9|GPIO_CRH_CNF8|GPIO_CRH_CNF9); // очистить разряды MODE, CNF (поскольку после сброса мк задан режим "Input Floating = 01") GPIOC->CRH |= GPIO_CRH_MODE8|GPIO_CRH_MODE9|GPIO_CRH_CNF8_1|GPIO_CRH_CNF9_1; // Максимальная скорость порта PC8,9 = 50 MHz / выход Push-Pull в режиме альтернативной функции AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP; // Ремап TIM3 вывод PC8 настраивается для работы с выходом TIM3_CH3, PC9 с TIM3_CH4
//======================== // инициализация таймера TIM3 // Для формирования сигнала ШИМ используется канал 3 и 4 (TIM3_CH3, TIM3_CH4 ) //======================== RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; // Тактирование таймера TIM3 TIM3->CCER |= (TIM_CCER_CC3E | TIM_CCER_CC4E); // Разрешаем ШИМ использовать лапки РС8, РС9 (Выход канала захвата/сравнения включен на каналах 3 и 4) TIM3->CCMR2 |= (TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3M_1 | // Прямой ШИМ на канал 3 (PWM1 OCxM=110), активен пока TIMx_CNT<TIMx_CCRx при счете “вверх”, “вниз” пока TIMx_CNT>TIMx_CCRx TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1); // Прямой ШИМ на канал 4 ( при инверсном ШИМ PWM2(OCxM = 111) все прямо противоположно. TIM3->CR1 |= TIM_CR1_CEN; // старт таймера TIM3
/*=========== Вызов функции конфигурации системного таймера SysTick. =========*/ SysTick_Config(SystemCoreClock / 100);/* Конфигурируем таймер SysTick на срабатывание 100 раз в секунду */
while(1)/*=================== Основной цикл ==============*/ {
if (flag) // Если флаг установлен for (;(Push_Button && (i<=10));i++) // Увеличиваем яркость, пока нажата кнопка и i<=11 { TIM3->CCR4=pwm_arr[i]; // Записываем данные в TIM3->CCRx - и меняем яркость светодиода Delay_ms(100); // Через указанный промежуток времени = 100 мс } if (!flag) // Если флаг сброшен for (;(Push_Button && (i>=1));i--) // Уменьшаем яркость, пока нажата кнопка и i>=1 { TIM3->CCR4=pwm_arr[i]; // Записываем данные в TIM3->CCRx - и меняем яркость светодиода Delay_ms(100); // Через указанный промежуток времени = 100 мс } } }
Добрый день! Не знал, куда написать, так что будет тут. Такая проблема: Есть плата STM32VLDISCOVERY/ На ней встроенный программатор/отладчик. Так получилось, что я уронил на него провод с +12В. Понятно, что контроллер в отладчике не замешкался выпустить волшебный дым, на котором работал. Собственно вопрос: Если я заменю контроллер в программаторе, то где мне взять для него прошивку и как предпочтительнее прошить? Или лучше купить новую плату? Дело в том, что эту плату я использую в качестве программатора для своих проектов. И сейчас у меня стоит вопрос: купить отдельный отладчик с поддержкой JTAG/SWD/SWIM, или попробовать восстановить горелый.
Все дело в ST-шном бутлодере без которого это просто кирпич.
Ребята попотели и хакнули его. Попробуйте прошить хотя бы через USART, потом из ST-link-а законнектиться и обновиться. Взял на просторах интернета, где уже не помню. Сам не пробовал.
ЗЫ. Это фирмваре на ST-LINK2, на VL Discovery ST-LINK1, там какие-то схемные отличия были, надо в мануале схемы сравнивать.
ЗЫ2. Проверьте еще стаб на плате на 3.3В, он тоже пострадать мог.
РадиоЛоматель, вы мой друг по несчастью, только у меня +25 упало. на этой плате стоит st-link v1, к сожалению на эту версию я не нашел прошивку. у меня еще есть дискавери f0, я ее вытянул и тоже спалил, но на ней стоит st-link v2, прошивку на него я нашел (ПОЛНАЯ взломанная), впаял новый мк и все пошло. разница в схеме v1 и v2 есть, но можно переделать.
Есть удачный клон за 200. Тоже не дешево. Но уже ощутимо дешевле.
Посмотрел сейчас схемы. Да, при наличии прошивки самому собрать можно за день от начала и до конца. Деталей там гривен на 40 соберется с текстолитом и процессором. Если не секрет, где добыть прошивку можно?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения