Страница 46 из 446
Re: STM32 новичку в ARM что к чему
Добавлено: Вс июл 14, 2013 17:50:49
GHOST_J_D
приобрел F3 discavery, запутался с софтом, посоветуйте в чем писать. Какое IDE + компилятор и все нужное для отладки?. Скачал кукокс но там нужного камня нет. Скачал библиотеку с сайта ST, положил в папку библиотек у кукокса. Семейство камней есть а выбора модели нету.
1) Стоит ли писать в кукоксе или нужно еще что то куда-то скопировать чтобы появился выбор камня?
2) Заменить кукокс на эклипс и танцевать с бубном вокруг эклиса?
3) Все это фигня и есть нормально ломаные IDE для ST32F3 cемейства?
Вопщем запутался
На данный момент окно выбора выглядит так

Re: STM32 новичку в ARM что к чему
Добавлено: Вс июл 14, 2013 18:16:17
zöner
все эти кукоксы и прочие - ненужная фигня.
для работы достаточно голого Эклипса с CDT плагином (а именно опцией GCC Cross-compilation).
тулчейн - бесплатный Codesourcery.
тип контроллера задается в опциях компилятора (Cortex-M0/M3/M4).
поддержка конретного камня - в библиотеках от производителей (ST StdperiphLib для STM32F1/2/3/4).
количество памяти для конкретного камня задается в скрипте линкера.
Re: STM32 новичку в ARM что к чему
Добавлено: Вс июл 14, 2013 18:44:21
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 и не находит

.
Re: STM32 новичку в ARM что к чему
Добавлено: Вс июл 14, 2013 18:55:14
dosikus
У ZiB'а вручную, что не всем подходит из за лени.
Читайте . Выложил в pdf . Ссылки на оригинал присутствуют .
http://kazus.ru/forums/showthread.php?t=105029
Re: STM32 новичку в ARM что к чему
Добавлено: Вс июл 14, 2013 19:05:14
GHOST_J_D
Re: STM32 новичку в ARM что к чему
Добавлено: Вс июл 21, 2013 21:18:02
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; // Записываем данные в 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 мс
}
}
}
Re: STM32 новичку в ARM что к чему
Добавлено: Пн июл 22, 2013 10:52:18
optima
А для чего в начале массива два нулевых значения?
Re: STM32 новичку в ARM что к чему
Добавлено: Пн июл 22, 2013 17:38:02
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%
Re: STM32 новичку в ARM что к чему
Добавлено: Пн июл 22, 2013 18:41:58
amv2000
Без этого нуля регулируется скачком(один раз моргает в конце и начале), с нулём плавно.
Пример массива брал здесь
http://easystm32.ru/for-beginners/35-pwm-in-stm32
Re: STM32 новичку в ARM что к чему
Добавлено: Вт июл 23, 2013 05:46:17
optima
Скачки может от дребезга кнопочки!
Re: STM32 новичку в ARM что к чему
Добавлено: Вт июл 23, 2013 17:43:27
РадиоЛоматель
Добрый день! Не знал, куда написать, так что будет тут.
Такая проблема: Есть плата STM32VLDISCOVERY/ На ней встроенный программатор/отладчик. Так получилось, что я уронил на него провод с +12В. Понятно, что контроллер в отладчике не замешкался выпустить волшебный дым, на котором работал.
Собственно вопрос: Если я заменю контроллер в программаторе, то где мне взять для него прошивку и как предпочтительнее прошить? Или лучше купить новую плату?
Дело в том, что эту плату я использую в качестве программатора для своих проектов. И сейчас у меня стоит вопрос: купить отдельный отладчик с поддержкой JTAG/SWD/SWIM, или попробовать восстановить горелый.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт июл 23, 2013 21:19:56
uk8amk
Все дело в ST-шном бутлодере без которого это просто кирпич.
Ребята попотели и хакнули его. Попробуйте прошить хотя бы через USART, потом из ST-link-а законнектиться и обновиться.
Взял на просторах интернета, где уже не помню. Сам не пробовал.
ЗЫ. Это фирмваре на ST-LINK2, на VL Discovery ST-LINK1, там какие-то схемные отличия были, надо в мануале схемы сравнивать.
ЗЫ2. Проверьте еще стаб на плате на 3.3В, он тоже пострадать мог.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт июл 23, 2013 21:21:22
drakon
РадиоЛоматель, вы мой друг по несчастью, только у меня +25 упало. на этой плате стоит st-link v1, к сожалению на эту версию я не нашел прошивку. у меня еще есть дискавери f0, я ее вытянул и тоже спалил, но на ней стоит st-link v2, прошивку на него я нашел (ПОЛНАЯ взломанная), впаял новый мк и все пошло. разница в схеме v1 и v2 есть, но можно переделать.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт июл 23, 2013 21:36:11
РадиоЛоматель
Спасибо за ответы. Ну, раз такие пироги, то уж раскошелюсь на нормальный программатор. А плату попробую на досуге как-нибудь восстановить.
Re: STM32 новичку в ARM что к чему
Добавлено: Вт июл 23, 2013 23:28:38
drakon
так он стоит не меньше 350грн. я себе рисую плату урезаного линка как на дискавери.
Re: STM32 новичку в ARM что к чему
Добавлено: Ср июл 24, 2013 02:06:03
РадиоЛоматель
drakon писал(а):так он стоит не меньше 350грн.
Есть удачный клон за 200. Тоже не дешево. Но уже ощутимо дешевле.
Посмотрел сейчас схемы. Да, при наличии прошивки самому собрать можно за день от начала и до конца. Деталей там гривен на 40 соберется с текстолитом и процессором. Если не секрет, где добыть прошивку можно?
Re: STM32 новичку в ARM что к чему
Добавлено: Ср июл 24, 2013 02:59:45
HHIMERA
Возьмите глаза в руки и посмотрите... тремя постами выше!!!
Re: STM32 новичку в ARM что к чему
Добавлено: Ср июл 24, 2013 05:46:43
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/
Re: STM32 новичку в ARM что к чему
Добавлено: Ср июл 24, 2013 15:24:07
Satyr
Вы че народ ?
самый кошерный J-link клон из китая с ДОСТАВКОЙ стоит до 20$
Re: STM32 новичку в ARM что к чему
Добавлено: Ср июл 24, 2013 18:32:58
drakon