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

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

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

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

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

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


 
Опции темы

EXTI on STM32F030c8t6

Непрочитано 15.10.2016, 18:37  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию EXTI on STM32F030c8t6

Добрый день. Нужно настроить внешнее прерывание на PORTB 15. Читаю пол дня даташит, смотрю примеры в инете - нифига не могу понять. На 103 серии всё легко заработало а тут немогу понять что где включить. Кучу регистров надо понастраивать. Может у кого есть под F0 серию примерчик??? Дайте плиз... Надо включить тактирование SYSCFG, Альтернативные функции настроить(немогу понять где их искать, для таймеров и т.д. понятно в таблице, а внешние прерывания не нахожу), регистр EXTI включить в IMR разрешение прерывания MR15, включить в нем же FTSR-›TR15. Обработчик прерывания вроде нашел
PHP код:
void EXTI4_15_IRQHandler(void)
{
         if (EXTI-›PR & (1‹‹15)) //проверяем прерывание от EXTI15
         {
                 
                 EXTI-›PR |= EXTI_PR_PR15; //сброс флага прерывания
            temp++;
         }
}

void Init_EXTI(void)
{
    EXTI_InitTypeDef EXTI_User;
   GPIO_InitTypeDef GPIO_InitStructure;
   
   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
   RCC_APB2PeriphClockCmd (RCC_APB2Periph_SYSCFG, ENABLE);
     
   // Прерывание по падению уровня на ноге 1 и 2 порта привязанного к EXTI
   EXTI-›FTSR     |=EXTI_FTSR_TR15;
   
//    EXTI_User.EXTI_Line = EXTI_Line15; //PB15
//    EXTI_User.EXTI_Mode = EXTI_Mode_Interrupt;
//    EXTI_User.EXTI_Trigger = EXTI_Trigger_Falling;
//    EXTI_User.EXTI_LineCmd = ENABLE;
//    EXTI_Init(&EXTI_User);

    NVIC_EnableIRQ (EXTI4_15_IRQn);
   // Разрешаем прерывания в периферии
   EXTI-›IMR |=EXTI_IMR_MR15 ;
   
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_15;// | GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
   
   GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_1);//непонятно какой номер AF_x
   
} 
В инете куча под 103-ю серию. Там всё работает как всегда )))
Реклама:
miwutka вне форума  
Непрочитано 15.10.2016, 18:51  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

блин как всегда. Отвлекся и всё сошлось.... Всё переделал.... Вот если кому нужно будет
PHP код:
void EXTI4_15_IRQHandler(void)
{
//  if(EXTI_GetITStatus(EXTI_Line8) != RESET)
//  {
//    /* Toggle LED1 */
//    STM_EVAL_LEDToggle(LED1);
//    
//    /* Clear the EXTI line 8 pending bit */
//    EXTI_ClearITPendingBit(EXTI_Line8);
//  }
  
  if(EXTI_GetITStatus(EXTI_Line15) != RESET)
  {
    /* Toggle LED4 */
    //STM_EVAL_LEDToggle(LED4);
   speed_sr_TAH++;
    /* Clear the EXTI line 13 pending bit */
    EXTI_ClearITPendingBit(EXTI_Line15);
  }


  
}

static void EXTI4_15_Config(void)
{
   EXTI_InitTypeDef EXTI_User;
   GPIO_InitTypeDef GPIO_InitStructure;
   NVIC_InitTypeDef   NVIC_InitStructure;
   
  /* Enable GPIOC clock */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

  /* Enable SYSCFG clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);


  
  /* Configure PC8 and PC13 pins as input floating */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  
   /* Connect EXTI8 Line to PC8 pin */
  //SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource8);
  
  /* Connect EXTI13 Line to PC13 pin */
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource15);
  
  /* Configure EXTI8 line */
  //EXTI_InitStructure.EXTI_Line = EXTI_Line8;  
  EXTI_User.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_User.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_User.EXTI_LineCmd = ENABLE;
  //EXTI_Init(&EXTI_InitStructure);
  
  /* Configure EXTI13 line */
  EXTI_User.EXTI_Line = EXTI_Line15;
  EXTI_Init(&EXTI_User);
  
  /* Enable and set EXTI4_15 Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI4_15_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 0x00;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

} 
miwutka вне форума  
Непрочитано 15.10.2016, 19:17  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

Снова SPL, так ничему и не научишься
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 15.10.2016, 21:22  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

я по сплу сраному смотрю какие регистры включены.....
miwutka вне форума  
Непрочитано 15.10.2016, 22:19  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,122
Сказал спасибо: 202
Сказали Спасибо 3,283 раз(а) в 2,149 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

припец нах.
у меня это занимает строк 10 от силы.

не помню чо я там делал уж точно но выглядит вот так
правда это для сотки

NVIC_EnableIRQ(EXTI1_IRQn);

EXTI-›IMR = EXTI_IMR_MR1;
EXTI-›FTSR = EXTI_FTSR_TR1;
EXTI-›EMR = 0;


void EXTI1_IRQHandler ()
{
EXTI-›PR=0XFFFFFF; //сбрасываем всё нах
EXTI-›IMR = 0;

далее твой код

}
__________________
кагмаподэ магмаподэ

Последний раз редактировалось индюк; 15.10.2016 в 22:24.
индюк вне форума  
Непрочитано 15.10.2016, 23:15  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

Ну и работать эти 10 строк тоже будут "от силы". Потому что половины, если не больше, не хватает.
К тому же, F030 довольно значительно отличается от F100, в том числе и по конфигу внешних прерыв.
NewWriter вне форума  
Непрочитано 15.10.2016, 23:27  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,122
Сказал спасибо: 202
Сказали Спасибо 3,283 раз(а) в 2,149 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

Сообщение от NewWriter Посмотреть сообщение
работать эти 10 строк тоже будут "от силы". Потому что половины, если не больше, не хватает.
у меня одно внешнее используется. поэтому больше там не надо.
всё работает. rc5 принимает
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 16.10.2016, 00:15  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

Ну я ж говорю - половина кода сюда не выложена. В том то и фишка, что внеш.прер. конфигятся в двух разных не связанных друг с другом местах - в альтерн.функц. (у F100) или в сис.конфиге у F030. Различаются и вектора внешних прерываний по группировке номеров линий.
И кстати, RC5 невозможно поставить на EXTI1. На EXTI1 можно поставить только Px1, вывод 1 любой буквы порта выбираемой в настройке.
NewWriter вне форума  
Непрочитано 16.10.2016, 00:18  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,122
Сказал спасибо: 202
Сказали Спасибо 3,283 раз(а) в 2,149 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

я не знаю что вам невозможно - я показал код который работает на 10 платах несколько лет.
вы не поняли - rc5 это ик пульт а не порт
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 16.10.2016, 00:24  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

НА СОТКЕ БЫЛО МИНИМУМ В ДВА РАЗА МЕНЬШЕ СТРОК НА СПЛ ДАЖЕ )) Ой капсил))) Там всё и работало легко. А тут по всем регистрам прыгать пришлось....
miwutka вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие процессоры\контроллеры изучать с нулевыми навыками? RMH1989 Песочница (вопросы новичков) 43 06.04.2016 13:58
STM32F030C8T6 пролема с SPI1 alexdos ARM 11 01.10.2013 20:46


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.