STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
GHOST_J_D
Родился
Сообщения: 12
Зарегистрирован: Пт дек 14, 2012 21:07:49
Откуда: Екатеринбург
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение GHOST_J_D »

приобрел F3 discavery, запутался с софтом, посоветуйте в чем писать. Какое IDE + компилятор и все нужное для отладки?. Скачал кукокс но там нужного камня нет. Скачал библиотеку с сайта ST, положил в папку библиотек у кукокса. Семейство камней есть а выбора модели нету.
1) Стоит ли писать в кукоксе или нужно еще что то куда-то скопировать чтобы появился выбор камня?
2) Заменить кукокс на эклипс и танцевать с бубном вокруг эклиса?
3) Все это фигня и есть нормально ломаные IDE для ST32F3 cемейства?
Вопщем запутался :(
На данный момент окно выбора выглядит так Изображение
Реклама
zöner
Вымогатель припоя
Сообщения: 502
Зарегистрирован: Чт фев 16, 2012 19:00:11

Re: STM32 новичку в ARM что к чему

Сообщение zöner »

все эти кукоксы и прочие - ненужная фигня.
для работы достаточно голого Эклипса с CDT плагином (а именно опцией GCC Cross-compilation).
тулчейн - бесплатный Codesourcery.
тип контроллера задается в опциях компилятора (Cortex-M0/M3/M4).
поддержка конретного камня - в библиотеках от производителей (ST StdperiphLib для STM32F1/2/3/4).
количество памяти для конкретного камня задается в скрипте линкера.
Последний раз редактировалось zöner Вс июл 14, 2013 19:01:35, всего редактировалось 1 раз.
Реклама
GHOST_J_D
Родился
Сообщения: 12
Зарегистрирован: Пт дек 14, 2012 21:07:49
Откуда: Екатеринбург
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение GHOST_J_D »

Cпасибо за ответ.
Еще может ктонибудь напишет как весь програмный пакет собрать и поставить? С каких сайтов и в какой последовательности.
Еклипс скачал. Sourcery G++ Lite это скачал и поставил как тут написано http://ziblog.ru/2011/01/06/pervyiy-sta ... ast-2.html
Сейчас пытаюся вот это прикрутить http://we.easyelectronics.ru/STM32/otla ... segcc.html Заполняю поле work with и не находит :( .
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

У ZiB'а вручную, что не всем подходит из за лени.
Читайте . Выложил в pdf . Ссылки на оригинал присутствуют .
http://kazus.ru/forums/showthread.php?t=105029
Реклама
Эиком - электронные компоненты и радиодетали
GHOST_J_D
Родился
Сообщения: 12
Зарегистрирован: Пт дек 14, 2012 21:07:49
Откуда: Екатеринбург
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение GHOST_J_D »

http://kazus.ru/forums/showthread.php?t=105029 вот за это спасибо
Реклама
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: STM32 новичку в ARM что к чему

Сообщение amv2000 »

Пробую ШИМ на плате STM32VL Discovery, сделал ремап на на PC8,9 от Tаймера3. Посредством кнопки PA0, увеличиваю или уменьшаю яркость светодиода PC9, только не пойму почему на краях (в начале и конце) регулируется через раз, в середине всё стабильно.
Спойлер//========================
// Подключаем в код содержимое файлов
//========================
#include "stm32f10x.h" // "stm32f10x.h" - Файл описания периферии
#include "initall.h" // "initall.h" - инициализации портов и таймера
#include "interrupt.h" // "interrupt.h" - обработчик прерывания

//========================
// Объявляем переменные, макросы и константы
//========================
#define CPU_CLK 8000000 // частота кварца 8 Мгц
#define Push_Button (GPIOA->IDR & 1) // Кнопка нажата
uint8_t flag; // флаг состояния
uint8_t i=1;

uint32_t pwm_arr[]={0,0,6553,13107,19660,26214, // 0%, 10%, 20%, 30%, 40%,
32768,39321,45875,52428,58982,65535}; // 50%, 60%, 70%, 80%, 90%, 100%

/**=======================
* @описание : Обработчик прерывания по переполнению таймера 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

GPIOA->CRL &= ~ GPIO_CRL_MODE0; // Кнопка "USER" PA0 - на вход.

//========================
// инициализация таймера 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 мс
}
}
}
Реклама
Аватара пользователя
optima
Прорезались зубы
Сообщения: 232
Зарегистрирован: Вт май 08, 2012 10:42:29

Re: STM32 новичку в ARM что к чему

Сообщение optima »

А для чего в начале массива два нулевых значения?
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

amv2000, попробуй заменить на:

Код: Выделить всё

const uint16_t pwm_arr[]={0,6553,13107,19660,26214, // 0%, 10%, 20%, 30%, 40%,
32768,39321,45875,52428,58982,65535}; // 50%, 60%, 70%, 80%, 90%, 100%
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: STM32 новичку в ARM что к чему

Сообщение amv2000 »

Без этого нуля регулируется скачком(один раз моргает в конце и начале), с нулём плавно.
Пример массива брал здесь http://easystm32.ru/for-beginners/35-pwm-in-stm32
Аватара пользователя
optima
Прорезались зубы
Сообщения: 232
Зарегистрирован: Вт май 08, 2012 10:42:29

Re: STM32 новичку в ARM что к чему

Сообщение optima »

Скачки может от дребезга кнопочки!
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение РадиоЛоматель »

Добрый день! Не знал, куда написать, так что будет тут.
Такая проблема: Есть плата STM32VLDISCOVERY/ На ней встроенный программатор/отладчик. Так получилось, что я уронил на него провод с +12В. Понятно, что контроллер в отладчике не замешкался выпустить волшебный дым, на котором работал.
Собственно вопрос: Если я заменю контроллер в программаторе, то где мне взять для него прошивку и как предпочтительнее прошить? Или лучше купить новую плату?
Дело в том, что эту плату я использую в качестве программатора для своих проектов. И сейчас у меня стоит вопрос: купить отдельный отладчик с поддержкой JTAG/SWD/SWIM, или попробовать восстановить горелый.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: STM32 новичку в ARM что к чему

Сообщение uk8amk »

Все дело в ST-шном бутлодере без которого это просто кирпич.

Ребята попотели и хакнули его. Попробуйте прошить хотя бы через USART, потом из ST-link-а законнектиться и обновиться.
Взял на просторах интернета, где уже не помню. Сам не пробовал.

ЗЫ. Это фирмваре на ST-LINK2, на VL Discovery ST-LINK1, там какие-то схемные отличия были, надо в мануале схемы сравнивать.

ЗЫ2. Проверьте еще стаб на плате на 3.3В, он тоже пострадать мог.
Вложения
STLinkV2.J16.S4.zip
(30.26 КБ) 234 скачивания
stlink.zip
(23.86 КБ) 215 скачиваний
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

РадиоЛоматель, вы мой друг по несчастью, только у меня +25 упало. на этой плате стоит st-link v1, к сожалению на эту версию я не нашел прошивку. у меня еще есть дискавери f0, я ее вытянул и тоже спалил, но на ней стоит st-link v2, прошивку на него я нашел (ПОЛНАЯ взломанная), впаял новый мк и все пошло. разница в схеме v1 и v2 есть, но можно переделать.
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение РадиоЛоматель »

Спасибо за ответы. Ну, раз такие пироги, то уж раскошелюсь на нормальный программатор. А плату попробую на досуге как-нибудь восстановить.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

так он стоит не меньше 350грн. я себе рисую плату урезаного линка как на дискавери.
Аватара пользователя
РадиоЛоматель
Мудрый кот
Сообщения: 1733
Зарегистрирован: Чт авг 21, 2008 22:03:30
Откуда: Одесса(Украина)
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение РадиоЛоматель »

drakon писал(а):так он стоит не меньше 350грн.

Есть удачный клон за 200. Тоже не дешево. Но уже ощутимо дешевле.

Посмотрел сейчас схемы. Да, при наличии прошивки самому собрать можно за день от начала и до конца. Деталей там гривен на 40 соберется с текстолитом и процессором. Если не секрет, где добыть прошивку можно?
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: STM32 новичку в ARM что к чему

Сообщение HHIMERA »

Возьмите глаза в руки и посмотрите... тремя постами выше!!!
"Я не даю готовых решений, я заставляю думать!"(С)
The_D
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт июл 06, 2012 14:28:17
Откуда: Россия. г.Смоленск

Re: STM32 новичку в ARM что к чему

Сообщение The_D »

А не проще купить нормальный полноценный ST-LINK/V2?
Изображение

Или на крайняк клоны и аналоги:
CoLinkEx - http://www.coocox.org/Colinkex.htm
TE-ST-LINK - http://www.compel.ru/infosheet/%D0%A0%D ... E-ST-LINK/
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: STM32 новичку в ARM что к чему

Сообщение Satyr »

Вы че народ ?
самый кошерный J-link клон из китая с ДОСТАВКОЙ стоит до 20$
Аватара пользователя
drakon
Грызет канифоль
Сообщения: 271
Зарегистрирован: Вт авг 09, 2011 15:01:44
Откуда: Харьков

Re: STM32 новичку в ARM что к чему

Сообщение drakon »

РадиоЛоматель, вот ссылка http://forum.easyelectronics.ru/viewtopic.php?f=17&t=6620&start=50 на тему, там и скачаете.
Ответить

Вернуться в «ARM»