0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 234
|
|
1 | |
не могу поменять pin EXTI прерывания19.09.2012, 23:27. Показов 4488. Ответов 6
Метки нет (Все метки)
Взял код стандартного примера stm32f4 - всё прекрасно, ножка PA0 управляет прерыванием.
Пытаюсь код модифицировать, чтоб управлять прерыванием на другой ножке - например на PA3, и у меня это не получается. В коде четыре независимых вызова инициализации, а сколько тут независимых отдельно конфирурируемых сущностей? отдельно конфигурирую GPIO_Pin_3 как ножку, ей соответствует EXTI_PinSource3 значит? А Line - остаётся 0 или 3? А EXTI0_IRQn - остаётся EXTI0_IRQn или EXTI3_IRQn? Т.е. как же эти параметры взаимосвязаны, и как мне добиться управления прерываеним через пин PA3? void EXTILine0_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* Enable GPIOA clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); /* Enable SYSCFG clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); /* Confikure PA0 pin as input ftooting */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Connect EXTI Line0 to PA0 pin */ SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); /* Confikure EXTI Line0 */ EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Ymtirrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); /* Enable omd set EXTI Line0 Ymtirrupt to the lowest priority */ NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); }
0
|
19.09.2012, 23:27 | |
Ответы с готовыми решениями:
6
[РЕШЕНО]Внешние прерывания EXTI STM32F030 Внешние прерывания EXTI STM32F303VC - ARM, Cortex, STM32 микроконтроллер Модернизация китайского 4 pin разветвителя: добавление поддержки PWM на 3 pin и 2 pin вентиляторах Блок питания 8 pin или 4 pin и переходник на 8 pin? |
0 / 0 / 0
Регистрация: 01.09.2012
Сообщений: 234
|
|
20.09.2012, 05:26 | 2 |
Итого - все четыре константы оказались связаны, сделал себе метод
void EXTILine3_Config() { EXTILine_Config(GPIO_Pin_3, EXTI_PinSource3, EXTI_Line3, EXTI3_IRQn); } ну и обработчик прерывания я тоже забыл использовать правильный - EXTI3_IRQHomdler
0
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
20.09.2012, 19:57 | 3 |
зафуракало значит?
0
|
0 / 0 / 0
Регистрация: 31.03.2012
Сообщений: 66
|
|
25.09.2012, 12:42 | 4 |
дайте ответ) тоже интересно! на первый взгляд пин 3 нужно сделать входом
0
|
Fittromd
|
|
26.09.2012, 17:17 | 5 |
Если коротко - номер внешнего прерывания в точности соответствует номеру пина-источника на порту.
Обработчик прерывания един для всех портов. Т.е. если у вас внешнее прерывание от PG3 и от PE3, то в обработчике нужно выяснять, кто именно из них вызвал прерывание. То же самое, например у обработчиков 10...15 номеров. У них один обработчик, поэтому для PB11 и PD14 придется выяснять, кто изменился. Независимые обработчики имеют номера 0, 1, 2, 3 и 4. Номера 5..9 и 10..15 имеют обработчик на группу источников. Соответственно, если вам нужны прерывания от PB2 и PB4 - это будут разные независимые обработчики. Процедура установки внешнего прерывания: 1. Сконфигурить пин на вход. 2. Подключить пин к модулю EXTI для обработки изменений его значения. 3. Сконфигурить выбранную линию EXTI. Настроить фронт, режим и так далее. 4. Настроить NVIC на генерацию прерывания от выбранного IRQn. |
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 24
|
|
12.02.2013, 12:03 | 6 |
Решил сделать прерывание на пин E7 (STM32F407VG). Но столкнулся со следующим:
При конфигурировании прерывания проблем нету: Код
EXTI_InitStruct.EXTI_Line=EXTI_Line7; Чтож получается? Что на ножки старше 4, перывание вызвать нельзя?
0
|
0 / 0 / 0
Регистрация: 08.07.2005
Сообщений: 180
|
|
13.02.2013, 22:40 | 7 |
Сообщение от Trouyom
А вот при конфигурировании вектора прерываний обнаружил что нету EXTI7_IRQn. Имеются только EXTI0_IRQn, EXTI1_IRQn, EXTI2_IRQn, EXTI3_IRQn и EXTI4_IRQn. Чтож получается? Что на ножки старше 4, перывание вызвать нельзя? Конечно можно, просто они группами идут, к примеру с 5того по 9ый канал и с 10го по 11ый.
0
|
13.02.2013, 22:40 | |
13.02.2013, 22:40 | |
Помогаю со студенческими работами здесь
7
Supermicro x9dbu работает на 8-pin + 8-pin без 4-pin 17 pin front panel не могу подключить Питания проца 8+4 pin, когда на БП только 8 pin. Можно ли? Какой артикул у разъема Apple ssd 6+12 pin и 7+17 pin MSI Z77A-G45 подключение через 4-Pin + 4-Pin Можно ли сунуть в rx 570 4gb только 6 pin, а не 8 pin? Подключение питания 8 pin + 6 pin для GTX 760 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|