Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 08.09.2011, 19:34  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Столкнулся с проблемой в KEIL. Проект состоит из двух файлов: 'main.c' и 'led.c'. При компиляции вываливаются ошибки типа такой:
Цитата:
Build target 'TIM1_IRQ_TST'
assembling startup_stm32f10x_md_vl.s...
compiling main.c...
compiling led.c...
led.c(11): error: #20: identifier "GPIOC" is undefined
led.c: GPIOC-›BSRR = (1‹‹25);
led.c: ^
led.c(16): error: #20: identifier "GPIOC" is undefined
led.c: GPIOC-›BSRR = (1‹‹9);
led.c: ^
led.c: led.c: 0 warnings, 2 errors
Target not created
Если же из группы файлов проекта удалить файл led.c(в левом окошке Project, команда Remove File 'led.c'), то компиляция проходит успешно.
Смотрел хелп, но ничего интересного на эту тему нет.

Как правильно в кейле создавать многофайловые проекты?
Реклама:
uk8amk вне форума  
Непрочитано 08.09.2011, 20:33  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,801
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

uk8amk, При компиляции led.c, он не знает что такое GPIOC. Добавьте в led.c например
#include "stm32f10x_lib.h" , где включен "stm32f10x_map.h" описывающий адрес GPIOC.

#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)

#ifdef _GPIOC
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
#endif /*_GPIOC */

Последний раз редактировалось andries5; 08.09.2011 в 20:38.
andries5 вне форума  
Непрочитано 09.09.2011, 00:20  
qwerky
Вид на жительство
 
Регистрация: 21.11.2009
Сообщений: 342
Сказал спасибо: 4
Сказали Спасибо 149 раз(а) в 66 сообщении(ях)
qwerky на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

пытаюсь на STM32F100C4T6 помигать св.диодами - молчит как партизан, листинг бинарника на вид нормальный, подозреваю проблемы с стартап-кодом или линкером.
вот исходник, архив проекта - в аттаче:
Код:
GPIO_InitTypeDef  GPIO_InitStructure;
RCC_ClocksTypeDef RCC_ClockFreq;

int main( void ) {
	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_14 | GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_OD;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);

	// setup hardware
	//setup( SETUP_MO_NORMAL );

	// main loop
	while (1) {
		GPIO_SetBits(GPIOB, GPIO_ODR_ODR6 | GPIO_ODR_ODR7);
		GPIO_SetBits(GPIOC, GPIO_ODR_ODR13 | GPIO_ODR_ODR14);
		for (volatile uint32_t d=10000000UL; d; d--);

		GPIO_ResetBits(GPIOB, GPIO_ODR_ODR6 | GPIO_ODR_ODR7);
		GPIO_ResetBits(GPIOC, GPIO_ODR_ODR13 | GPIO_ODR_ODR14);
		for (volatile uint32_t d=10000000UL; d; d--);
	}
	return 0;
}
компилирую тулчейном Codesourcery в Eclipse, заливаю stm32flash.

Не поделитесь скриптом линкера и стартап-кодом под Low-dencity,Value-line ?
Вложения:
Тип файла: zip blinking_led.zip (744.1 Кб, 85 просмотров)

Последний раз редактировалось qwerky; 09.09.2011 в 00:24.
qwerky вне форума  
Непрочитано 09.09.2011, 10:06  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
Добавьте в led.c например
#include "stm32f10x_lib.h" , где включен "stm32f10x_map.h" описывающий адрес GPIOC
.
Легче не стало. Теперь вот что говорит:
Цитата:
Build target 'TIM1_IRQ_TST'
assembling startup_stm32f10x_md_vl.s...
compiling main.c...
compiling led.c...
linking...
irq_tst.axf: Error: L6200E: Symbol LED_toggle multiply defined (by led.o and main.o).
irq_tst.axf: Finished: 0 information, 0 warning and 1 error messages.
Target not created
Если же вручную удалить этот файл как на рисунке, то компиляция проходит. Но этот вариант какбы не вариант т.к. я же должен видеть все файлы, участвующие в проекте.

На всякий случай вот сам проект.
Миниатюры:
Нажмите на изображение для увеличения
Название: remove_led.PNG
Просмотров: 56
Размер:	8.2 Кб
ID:	25858  
Вложения:
Тип файла: rar TIM1_IRQ_TST.rar (297.0 Кб, 85 просмотров)
uk8amk вне форума  
Непрочитано 09.09.2011, 11:18  
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Господа знатоки! Начал тут осовение STM32 Помогите найти ошибочку в конфигурировании прерывания по переполнению таймера Т2. И такой вовпрсец: где и как прописываются функции вектора прерываний из какого файла CMSIS

// устанавливаем предделитель
TIM2-›PSC = 10000-1;
// задаем период ШИМ
TIM2-›ARR = 0xff;

TIM2-›DIER |= TIM_DIER_UIE;

// разрешаем работу и автоперезагрузку
TIM2-›CR1 = TIM_CR1_CEN | TIM_CR1_ARPE;

NVIC_SetPriority(TIM2_IRQn , 15);
NVIC_EnableIRQ(TIM2_IRQn);


__irq void TIM2_IRQn_IRQHandler(void)
{
if (TIM2-›SR & TIM_SR_UIF)
{
TIM2-›SR &= ~TIM_SR_UIF;
GPIOE-›BSRR|= GPIO_BSRR_BS15;
pause(100);
GPIOE-›BSRR|= GPIO_BSRR_BR15;

}
}
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 09.09.2011, 14:22  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,801
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

uk8amk, В main.c Вы добавили led.c через
#include "led.с"
а надо создать led.h и в нем описать функцию "void LED_toggle(void);"
а в main.c написать
#include "led.h"
таким образом в основном файле подключаются заголовочные файлы, в которых описаны используемые во внешних файлах функции.
andries5 вне форума  
Непрочитано 09.09.2011, 15:25  
PlainUser
Прописка
 
Регистрация: 09.12.2003
Сообщений: 116
Сказал спасибо: 5
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
PlainUser на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от andries5 Посмотреть сообщение
uk8amk, В main.c Вы добавили led.c через
#include "led.с"
а надо создать led.h и в нем описать функцию "void LED_toggle(void);"
а в main.c написать
#include "led.h"
таким образом в основном файле подключаются заголовочные файлы, в которых описаны используемые во внешних файлах функции.

Создать main.h в нем описать все хидеры
#include "led.h"
#include "keypad.h"
#include "ADC.h"
....


каждый сишный файл начинать со строки #include "main.h"

для небольших проектов это лучший способ.
PlainUser вне форума  
Сказали "Спасибо" PlainUser
uk8amk (09.09.2011)
Непрочитано 09.09.2011, 17:42  
slovak194
Прохожий
 
Регистрация: 07.10.2009
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
slovak194 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Собственно вот здесь https://kazus.ru/forums/showthread.p...ighlight=stm32
прошу о помощи.

Вопрос касается генерации исходного кода для stm32 из Matlab/Simulink

Если кто-то сталкивался с таким - буду очень признателен доброму совету.

Заранее благодарю!
slovak194 вне форума  
Непрочитано 09.09.2011, 19:21  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,801
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

slovak194, С matlab-ом не сталкивался, но в репорте он пишет, что во время вызова 'exit' происходит изменение папки, а это изменение не поддерживается. И потому сбрасывается. Т.к. нет matlab-а, то и нет возможности увидеть исходный текст.
andries5 вне форума  
Непрочитано 09.09.2011, 20:06  
uk8amk
Вид на жительство
 
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
uk8amk на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Есть ли для STM32 что-то типа калькулятора/визарда для быстрой конфигурации GPIO? Там тыкаешь в пины порта(вход-выход-AFIO), на выходе хекс забираешь. Хотел написать, но подумал может уже есть такое и не надо изобретать велосипед..
uk8amk вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 03:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot