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

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

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

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

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

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


 
Опции темы
Непрочитано 15.10.2016, 18:37  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 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_GPIOBENABLE);
   
RCC_APB2PeriphClockCmd (RCC_APB2Periph_SYSCFGENABLE);
     
   
// Прерывание по падению уровня на ноге 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(GPIOBGPIO_PinSource15GPIO_AF_1);//непонятно какой номер AF_x
   

В инете куча под 103-ю серию. Там всё работает как всегда )))
Реклама:
miwutka вне форума  
Непрочитано 15.10.2016, 18:51  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 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_GPIOBENABLE);

  
/* Enable SYSCFG clock */
  
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFGENABLE);


  
  
/* 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_PortSourceGPIOBEXTI_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
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

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

я по сплу сраному смотрю какие регистры включены.....
miwutka вне форума  
Непрочитано 15.10.2016, 22:19  
индюк
Заблокирован
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,715
Сказал спасибо: 189
Сказали Спасибо 3,199 раз(а) в 2,074 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: EXTI on STM32F030c8t6

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

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

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

я не знаю что вам невозможно - я показал код который работает на 10 платах несколько лет.
вы не поняли - rc5 это ик пульт а не порт
индюк вне форума  
Непрочитано 16.10.2016, 00:24  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 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, время: 19:41.


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