реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> STM32F0+Keil=простой старт, Помогите начать работать с АРМ Cortex M0
Artos5
сообщение Jul 21 2013, 07:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Добрый день уважаемые форумчане!
Бьюсь уже третий день. Не могу начать работать с СТМ32Ф0...
В интернете полно примеров для STM32f1 серии, а для 0 серии информации "0".
Помогите (подскажите) пошаговую настройку Кейла для работы с STM32F0. Из отладочного комплекта имеется STM32F0Discovery
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 21 2013, 09:04
Сообщение #2


Профессионал
*****

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



Привет. Где-то я тебя видел sm.gif
Надо было здесь писать - 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
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 09:13
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Цитата(hd44780 @ Jul 21 2013, 12:04) *
Привет. Где-то я тебя видел sm.gif

Привет! Спасибо большое за помощь wink.gif

Подскажи, где взять этот пакет? stm32f0xx stdperiph_lib
На сайте производителя по поиску ни в какую не находит!!!!!!! Уже готов разбить "аП стену" монитор sm.gif)

Где вообще взять этот злосчастный пакет библиотек?! Надо: CMSIS & SPL

Цитата(hd44780 @ Jul 21 2013, 12:04) *
Если что, спрашивай.


СПАСИБО огромнейшее! Скачал твой пример, и проект от компилировался!!! sm.gif
Теперь надо что то полезное (работоспособное) откомпилировать sm.gif


Сообщение отредактировал Artos5 - Jul 21 2013, 09:09
Go to the top of the page
 
+Quote Post
andries5
сообщение Jul 21 2013, 09:16
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 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.
Будут вопросы пишите.
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 09:21
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Хочу "поблымать" светодиодом . Но дальше не пойму как это сделать..
Я так понимаю надо подключить библиотеку для работы с вводом/выводом , но где ее взять?
Проц в твоем проекте выбран в точности такой как у меня стоит на плате sm.gif

Цитата(andries5 @ Jul 21 2013, 12:16) *
В CMSIS скопировал startup_stm32f0xx.s, stm32f0xx.h, system_stm32f0xx.c и system_stm32f0xx.h


Спасибо за помощь Вам!
Где взять выше указанные файлы?

Можно поделиться настроенным проектом со всеми выше указанными файлами? Буду Вам очень признателен! sm.gif


Сообщение отредактировал Artos5 - Jul 21 2013, 09:18
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 21 2013, 09:21
Сообщение #6


Профессионал
*****

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



Вот архив в сайта ST - http://www.st.com/web/en/catalog/tools/PF257885 для твоей платы.
В том числе и для кейла. Покопайся в них для начала. Там есть всё - библиотеки, заголовки, всё. Некоторые не любят SPL, но это уже вопросы религии.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
andries5
сообщение Jul 21 2013, 09:23
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 09:44
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Цитата(hd44780 @ Jul 21 2013, 12:21) *
Вот архив в сайта ST - http://www.st.com/web/en/catalog/tools/PF257885 для твоей платы.


Пребольшущее Тебе спасибо wink.gif
А то по поиску на ихнем сайте ничего не находило.........
Буду сейчас ковырять sm.gif


Цитата(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
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
andries5
сообщение Jul 21 2013, 09:47
Сообщение #9


Участник
*

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



Цитата(Artos5 @ Jul 21 2013, 12:21) *
Хочу "поблымать" светодиодом . Но дальше не пойму как это сделать..

Можно поделиться настроенным проектом со всеми выше указанными файлами? Буду Вам очень признателен! sm.gif

Создал проект, пробуйте.
Прикрепленные файлы
Прикрепленный файл  Blink_LED_.rar ( 963.73 килобайт ) Кол-во скачиваний: 112
 
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 10:07
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Цитата(andries5 @ Jul 21 2013, 12:47) *
Создал проект, пробуйте.


Спасибо большое! Откомпилировал, залил, работает! wink.gif


Цитата(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
Чтобы было "задефайнено" не вижу..
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 21 2013, 10:09
Сообщение #11


Профессионал
*****

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



Цитата(Artos5 @ Jul 21 2013, 12:44) *
А то по поиску на ихнем сайте ничего не находило.........


Надо искать по STM32F0Discovery. Эта ссылка оттуда rolleyes.gif .


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 10:12
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613



Цитата(Artos5 @ Jul 21 2013, 13:07) *
Все понятно кроме одного. Где взялась строчка: Butt_User_Get_State и строчка: RESET
Чтобы было "задефайнено" не вижу..


Вопрос снят, нашел sm.gif
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 21 2013, 10:14
Сообщение #13


Профессионал
*****

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



А я уж собрался подсказывать sm.gif


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Artos5
сообщение Jul 21 2013, 10:24
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 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--;
}
}


Вопросов бы не было вовсе sm.gif

И тоже для меня странно... нету объявления TimingDelay это переменная или это какой то системный таймер?

Сообщение отредактировал Artos5 - Jul 21 2013, 10:17
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jul 21 2013, 10:38
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Artos5 @ Jul 21 2013, 14:24) *
Не понятный для меня код... как выполняется декремент?

И тоже для меня странно... нету объявления TimingDelay это переменная или это какой то системный таймер?

глобальная переменная. Декремент смотреть в прерывании системного таймера
объявлена в main.c (как вы ищите - непонятно)
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016