Киньте тестовым проектом для CORTEX STM32F103, пожалуйста.

Статус: Offline
Реєстрація: 17.08.2005
Повідом.: 49228
Киньте тестовым проектом для CORTEX STM32F103, пожалуйста.

Дошли руки до STM32F103 от Olimex.
Киньте плих, если у кого есть, тестовым проектом для IAR с инициализацией и каким-нить светодиодным хэллоу ворлдом.
 
может поможет (правда RTOS):
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
 
та мне не надо РТОС. Примерники от OLIMEX есть, но они сильно перегруженные - хорошо писаны, но дохера ихнего, мне не нужного, много править.

Хотелось бы хэллоу ворлд какой-то с минимумом левых дефайнов и ненужных процедур. Так меньше колупаться.

Аппноты с IAR Evaluation суля по всему защищены.

Не могу работать с прерываниями, причем по дурному:

Это процедура в аппноте
Код:
void NVIC_StructInit(NVIC_InitTypeDef* NVIC_InitStruct)
{
  /* NVIC_InitStruct members default value */
  NVIC_InitStruct->NVIC_IRQChannel = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelSubPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelCmd = DISABLE;
}

Она работает.

Я беру и делаю рядом копипаст с другим именем:

Код:
void NVIC_Start()
{
  /* NVIC_InitStruct members default value */
  NVIC_InitStruct->NVIC_IRQChannel = TIM1_UP_IRQChannel;
  NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelSubPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelCmd = DISABLE;
}

И выясняется, что NVIC_InitStruct

Error[Pe020]: identifier "NVIC_InitStruct" is undefined C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\examples\ST\STM32F10x\OLIMEX-STM32F103-STK\library\src\stm32f10x_nvic.c 181

Это пипец какой-то... Для процедуры рядом всё норм, а для моей - не объявлена, блять... ну шо за хня?

Поиском обнаружить где объявляется структура - не возможно...

Кто-то понимает что происходит?
 
Это процедура в аппноте
Код:
void NVIC_StructInit(NVIC_InitTypeDef* NVIC_InitStruct)
{
}

Она работает.

Код:
void NVIC_Start()
{
  /* NVIC_InitStruct members default value */
  NVIC_InitStruct->NVIC_IRQChannel = TIM1_UP_IRQChannel;
  NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelSubPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelCmd = DISABLE;
}

в примере переменная объявлена как параметр, а у Вас - не объявлен (по крайней мере в том куске кода, что Вы привели) :confused:
 
в примере переменная объявлена как параметр, а у Вас - не объявлен (по крайней мере в том куске кода, что Вы привели) :confused:

Правильно.Это и есть функция без параметров.
Я хотел сделать принудительную процедуру, чтобы не давать ей параметров.

А зачем? А затем, что эта самая структура из main ТОЖЕ НЕ ДОСТУПНА... И дать параметры я ей ну ни как не могу.
Хотел сделать функцию там, где, как мне казалось, эта структура видимая.

Но выяснилось, что она-то видимая, но не про мою честь..
 
та мне не надо РТОС. Примерники от OLIMEX есть, но они сильно перегруженные - хорошо писаны, но дохера ихнего, мне не нужного, много править.

Хотелось бы хэллоу ворлд какой-то с минимумом левых дефайнов и ненужных процедур. Так меньше колупаться.

Аппноты с IAR Evaluation суля по всему защищены.

Не могу работать с прерываниями, причем по дурному:

Это процедура в аппноте
Код:
void NVIC_StructInit(NVIC_InitTypeDef* NVIC_InitStruct)
{
  /* NVIC_InitStruct members default value */
  NVIC_InitStruct->NVIC_IRQChannel = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelSubPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelCmd = DISABLE;
}

Она работает.

Я беру и делаю рядом копипаст с другим именем:

Код:
void NVIC_Start()
{
  /* NVIC_InitStruct members default value */
  NVIC_InitStruct->NVIC_IRQChannel = TIM1_UP_IRQChannel;
  NVIC_InitStruct->NVIC_IRQChannelPreemptionPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelSubPriority = 0x00;
  NVIC_InitStruct->NVIC_IRQChannelCmd = DISABLE;
}

И выясняется, что NVIC_InitStruct

Это пипец какой-то... Для процедуры рядом всё норм, а для моей - не объявлена, блять... ну шо за хня?
Поиском обнаружить где объявляется структура - не возможно...
Кто-то понимает что происходит?
В примере объявлен указатель по имени NVIC_InitStruct на обьект типа NVIC_InitTypeDef.
В твоем копипасте,первой-же строкой,надо обьявить указатель на требуемую структуру.
 
Да, я еблан :) Спасибо, увидел.
______________________-

Возникла новая проблема - не могу включить AFIO.

Пробовал пользоваться функциями из тестового проекта от IAR, пробовал писать напрямую в регистры - болтяка на 48 с левой резьбой.

Такое впечатление, что он не тактируется, хотя тактирование GPIO и AFIO включается и в дебагером видно, что данные в RCC->APB2ENR записались.

При попытке записи в AFIO->EXTICR ни чего не происходит. Хотя компилится нормально и не ругается.

Кто-нибудь уже пробовал в этом кортесе внешние прерывания включать?

Сцуко,мало того - в процессе отладки я поччему-то не могу вручную втулить значение регистру AFIO_EXTI0 (ну и ни какому из AFIO вообще).. чЪо это за бред? Что не так делаю?
 
Назад
Зверху Знизу