Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Добрый день уважаемые форумчане! Бьюсь уже третий день. Не могу начать работать с СТМ32Ф0... В интернете полно примеров для STM32f1 серии, а для 0 серии информации "0". Помогите (подскажите) пошаговую настройку Кейла для работы с STM32F0. Из отладочного комплекта имеется STM32F0Discovery Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Привет. Где-то я тебя видел :) Надо было здесь писать - http://electronix.ru/forum/index.php?showforum=190 . Модераторы перенесут. 1. Запустить кейл, зайти в меню Project -> New project 2. Указать путь, где будет лежать проект. 3. Указать имя файла проекта. Например, test1. Жмём сохранить. 4. Выбираем из кучи нужный процессор, например, STM32F051. Я не знаю, какой там у тебя на плате стоит, сам укажи, какой надо. 5. Кейл спросит, скопировать ли файл startup_.....s в каталог проекта. Лучше согласиться. 6. В принципе, всё. Но в этом виде проект неработоспособен, т.к. кейл не генерит main и не добавляет в проект ещё один важный файл - system_stm32f0xx.c .В нём лежит код инициализации проца (тактовый генерратор и пр.). Этот файл есть в директории кейла, у меня это C:\Keil\ARM\Startup\ST\STM32F0xx\. Ну и main добавить. Т.к. кейл жутко гадит временными и объектными файлами в каталог проекта, то лучше держать свои модули (файлы *.c) в каком-нибудь подкаталоге. Результат прилагаю. Библиотеки периферии и пр. надо качать с сайта ST и добавлять нужное в проект руками. Если что, спрашивай. TestF0.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 (изменено) · Жалоба Привет. Где-то я тебя видел :) Привет! Спасибо большое за помощь ;) Подскажи, где взять этот пакет? stm32f0xx stdperiph_lib На сайте производителя по поиску ни в какую не находит!!!!!!! Уже готов разбить "аП стену" монитор :)) Где вообще взять этот злосчастный пакет библиотек?! Надо: CMSIS & SPL Если что, спрашивай. СПАСИБО огромнейшее! Скачал твой пример, и проект от компилировался!!! :) Теперь надо что то полезное (работоспособное) откомпилировать :) Изменено 21 июля, 2013 пользователем Artos5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Я тоже пару дней ковыряюсь, с STM32F0Discovery, хочу выполнить маленькую задачу. Пока проблем не увидел. А в чем у Вас проблемы? Напишите, поможем чем сможем. В рабочей папке проекта создал папки: CMSIS, StdLib, Project, Source. В CMSIS скопировал startup_stm32f0xx.s, stm32f0xx.h, system_stm32f0xx.c и system_stm32f0xx.h. В StdLib папки inc и src из STM32F0xx_StdPeriph_Driver. В папке Project сохраняю сам проект. В Source stm32f0xx_it.c, stm32f0xx_it.h, stm32f0xx_conf.h и также создаю, в самом Keil, main.c, добавляю еще main.h, а также init_main.c и init_main.h, в которых инициализирую модули. При создании проекта выбираю нужный камень и в опциях проекта в С/С++ Define пишу USE_STDPERIPH_DRIVER,USE_FULL_ASSERT. Там же в Include Parts прописываю пути к папкам Source, CMSIS, StdLib/inc. Будут вопросы пишите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 (изменено) · Жалоба Хочу "поблымать" светодиодом . Но дальше не пойму как это сделать.. Я так понимаю надо подключить библиотеку для работы с вводом/выводом , но где ее взять? Проц в твоем проекте выбран в точности такой как у меня стоит на плате :) В CMSIS скопировал startup_stm32f0xx.s, stm32f0xx.h, system_stm32f0xx.c и system_stm32f0xx.h Спасибо за помощь Вам! Где взять выше указанные файлы? Можно поделиться настроенным проектом со всеми выше указанными файлами? Буду Вам очень признателен! :) Изменено 21 июля, 2013 пользователем Artos5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Вот архив в сайта ST - http://www.st.com/web/en/catalog/tools/PF257885 для твоей платы. В том числе и для кейла. Покопайся в них для начала. Там есть всё - библиотеки, заголовки, всё. Некоторые не любят SPL, но это уже вопросы религии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба http://www.st.com/web/en/catalog/tools/PF257884 Скачать STSW-STM32048. В нем есть папка STM32F0xx_StdPeriph_Lib_V1.0.0, а в ней папка Libraries. Вот там все есть CMSIS & SPL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 (изменено) · Жалоба Вот архив в сайта ST - http://www.st.com/web/en/catalog/tools/PF257885 для твоей платы. Пребольшущее Тебе спасибо ;) А то по поиску на ихнем сайте ничего не находило......... Буду сейчас ковырять :) В Source stm32f0xx_it.c, stm32f0xx_it.h, stm32f0xx_conf.h и также создаю, в самом Keil, main.c, добавляю еще main.h, а также init_main.c и init_main.h, в которых инициализирую модули. Прошу прощение за возможно ламерский вопрос... В архиве нашел мешок таких файлов. Какие из них надо добавить к проекту? И всеже для меня , было бы проще разобраться в прикрепленном проекте.. А то я что то уже запутался : )) Изменено 21 июля, 2013 пользователем Artos5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Хочу "поблымать" светодиодом . Но дальше не пойму как это сделать.. Можно поделиться настроенным проектом со всеми выше указанными файлами? Буду Вам очень признателен! :) Создал проект, пробуйте. Blink_LED_.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Создал проект, пробуйте. Спасибо большое! Откомпилировал, залил, работает! ;) пробуйте. В вашем коде есть строчка: if(Butt_User_Get_State != RESET) { LED_Blue_On; LED_Greeen_On; } else { LED_Blue_Off; LED_Greeen_On; Delay(1000); LED_Blue_On; LED_Greeen_Off; Delay(1000); } Все понятно кроме одного. Где взялась строчка: Butt_User_Get_State и строчка: RESET Чтобы было "задефайнено" не вижу.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба А то по поиску на ихнем сайте ничего не находило......... Надо искать по STM32F0Discovery. Эта ссылка оттуда :rolleyes: . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Все понятно кроме одного. Где взялась строчка: Butt_User_Get_State и строчка: RESET Чтобы было "задефайнено" не вижу.. Вопрос снят, нашел :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба А я уж собрался подсказывать :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artos5 0 21 июля, 2013 Опубликовано 21 июля, 2013 (изменено) · Жалоба Создал проект, пробуйте. Второй ламерский вопрос: void Delay(__IO uint32_t nTime) { TimingDelay = nTime; while(TimingDelay != 0); } Не понятный для меня код... как выполняется декремент? Если бы было так: void Delay(__IO uint32_t nTime) { TimingDelay = nTime; while(TimingDelay ) { TimingDelay--; } } Вопросов бы не было вовсе :) И тоже для меня странно... нету объявления TimingDelay это переменная или это какой то системный таймер? Изменено 21 июля, 2013 пользователем Artos5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 21 июля, 2013 Опубликовано 21 июля, 2013 · Жалоба Не понятный для меня код... как выполняется декремент? И тоже для меня странно... нету объявления TimingDelay это переменная или это какой то системный таймер? глобальная переменная. Декремент смотреть в прерывании системного таймера объявлена в main.c (как вы ищите - непонятно) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться