|
|
  |
STM32F0+Keil=простой старт, Помогите начать работать с АРМ Cortex M0 |
|
|
|
Jul 21 2013, 09:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Привет. Где-то я тебя видел  Надо было здесь писать - 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 ( 108.81 килобайт )
Кол-во скачиваний: 100
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Jul 21 2013, 09:13
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(hd44780 @ Jul 21 2013, 12:04)  Привет. Где-то я тебя видел  Привет! Спасибо большое за помощь  Подскажи, где взять этот пакет? stm32f0xx stdperiph_lib На сайте производителя по поиску ни в какую не находит!!!!!!! Уже готов разбить "аП стену" монитор  ) Где вообще взять этот злосчастный пакет библиотек?! Надо: CMSIS & SPL Цитата(hd44780 @ Jul 21 2013, 12:04)  Если что, спрашивай. СПАСИБО огромнейшее! Скачал твой пример, и проект от компилировался!!!  Теперь надо что то полезное (работоспособное) откомпилировать
Сообщение отредактировал Artos5 - Jul 21 2013, 09:09
|
|
|
|
|
Jul 21 2013, 09:16
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421

|
Я тоже пару дней ковыряюсь, с 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. Будут вопросы пишите.
|
|
|
|
|
Jul 21 2013, 09:21
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Хочу "поблымать" светодиодом . Но дальше не пойму как это сделать.. Я так понимаю надо подключить библиотеку для работы с вводом/выводом , но где ее взять? Проц в твоем проекте выбран в точности такой как у меня стоит на плате  Цитата(andries5 @ Jul 21 2013, 12:16)  В CMSIS скопировал startup_stm32f0xx.s, stm32f0xx.h, system_stm32f0xx.c и system_stm32f0xx.h Спасибо за помощь Вам! Где взять выше указанные файлы? Можно поделиться настроенным проектом со всеми выше указанными файлами? Буду Вам очень признателен!
Сообщение отредактировал Artos5 - Jul 21 2013, 09:18
|
|
|
|
|
Jul 21 2013, 09:23
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421

|
http://www.st.com/web/en/catalog/tools/PF257884Скачать STSW-STM32048. В нем есть папка STM32F0xx_StdPeriph_Lib_V1.0.0, а в ней папка Libraries. Вот там все есть CMSIS & SPL.
|
|
|
|
|
Jul 21 2013, 09:44
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(hd44780 @ Jul 21 2013, 12:21)  Пребольшущее Тебе спасибо  А то по поиску на ихнем сайте ничего не находило......... Буду сейчас ковырять  Цитата(andries5 @ Jul 21 2013, 12:16)  В Source stm32f0xx_it.c, stm32f0xx_it.h, stm32f0xx_conf.h и также создаю, в самом Keil, main.c, добавляю еще main.h, а также init_main.c и init_main.h, в которых инициализирую модули. Прошу прощение за возможно ламерский вопрос... В архиве нашел мешок таких файлов. Какие из них надо добавить к проекту? И всеже для меня , было бы проще разобраться в прикрепленном проекте.. А то я что то уже запутался : ))
Сообщение отредактировал Artos5 - Jul 21 2013, 09:47
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 21 2013, 09:47
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421

|
Цитата(Artos5 @ Jul 21 2013, 12:21)  Хочу "поблымать" светодиодом . Но дальше не пойму как это сделать.. Можно поделиться настроенным проектом со всеми выше указанными файлами? Буду Вам очень признателен!  Создал проект, пробуйте.
|
|
|
|
|
Jul 21 2013, 10:07
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(andries5 @ Jul 21 2013, 12:47)  Создал проект, пробуйте. Спасибо большое! Откомпилировал, залил, работает!  Цитата(andries5 @ Jul 21 2013, 12:47)  пробуйте. В вашем коде есть строчка: Код 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 Чтобы было "задефайнено" не вижу..
|
|
|
|
|
Jul 21 2013, 10:12
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Artos5 @ Jul 21 2013, 13:07)  Все понятно кроме одного. Где взялась строчка: Butt_User_Get_State и строчка: RESET Чтобы было "задефайнено" не вижу.. Вопрос снят, нашел
|
|
|
|
|
Jul 21 2013, 10:24
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(andries5 @ Jul 21 2013, 12:47)  Создал проект, пробуйте. Второй ламерский вопрос: Код void Delay(__IO uint32_t nTime) { TimingDelay = nTime; while(TimingDelay != 0); } Не понятный для меня код... как выполняется декремент? Если бы было так: Код void Delay(__IO uint32_t nTime) { TimingDelay = nTime; while(TimingDelay ) { TimingDelay--; } } Вопросов бы не было вовсе  И тоже для меня странно... нету объявления TimingDelay это переменная или это какой то системный таймер?
Сообщение отредактировал Artos5 - Jul 21 2013, 10:17
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|