приобрел 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; // Записываем данные в TIM3->CCRx - и меняем яркость светодиода
Delay_ms(100); // Через указанный промежуток времени = 100 мс
}
if (!flag) // Если флаг сброшен
for (;(Push_Button && (i>=1));i--) // Уменьшаем яркость, пока нажата кнопка и i>=1
{
TIM3->CCR4=pwm_arr; // Записываем данные в 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 соберется с текстолитом и процессором. Если не секрет, где добыть прошивку можно?