USART STM32F2xx и прерывания
Итак USART и прерывания в STM32. Прерывания по USART в STM32 вполне можно организовать на базе стандартной библиотеки работы с периферией. Для этого достаточно установить источник прерывания, приоритет прерывания и описать обработчик. Поскольку файл с заготовками обработчиков имеется, - это стандартный файл любого проекта для STM32f2xx stm32f2xx_it.c, то остается только написать код самого обработчика.
Но для начала инициализация прерываний по USART1 stm32F217.
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// Разрешаем прерывания по приему
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
// Разрешение прерываний по USART1
USART_Cmd(USART1, ENABLE);
Далее простейший обработчик, который устроен так, что то что порт получает то и отдает обратно. Кроме того для визуализации процесса на осциллоскопе в обработчик добавлено дрыгание ногой GPIO_Pin_9.
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
// Что получил то и отдал
USART_SendData(USART1, USART_ReceiveData(USART1));
}
// Визуализации прерываний по USART1
GPIOB->ODR ^= GPIO_OTYPER_ODR_9;
}
Для того, чтобы легче было с справиться с прерываниями USART1 создан небольшой проектик под IAR ARM 6.21 куда включены все необходимые файлы для инициализации клока, GPIO контроллера и USART1. Работает проектик совсем просто. После сброса можно подавать на скорости 115200 бод данные на Rx вход USART1 STM32F217 и налюдать как он отвечает эхом.
Цель проектика - уяснение инициализации системы тактирования, GPIO контроллера, последовательного порта USART1 STM32F217 на базе стандартной библиотеки периферии и визуализация процесса дергания ногами и прерываний по USART1.
Собственно тестовый проект USART1 STM32F217
Электроника :
- Техника электроника (11)
- Полезная электроника (4)
- Электроника для всех (5)
- Техника для дома (6)
- Cхемотехника ПЛИС (11)
- Пректирование PCAD (4)
Программирование :
- Микроконтроллеры (9)
- ПЛИС VHDL Verilog (29)
- C++ Builder (7)
- Visual Studio C++ C# (7)
- Java programming (7)
- Matlab programming (4)
Сайтостроение :
- Сайтостроение HTML (5)
- Сайтостроение PHP (8)
- PHP CMS на файлах (3)
- Web инструменты (9)
- Полезное вебмастеру (11)
- SEO раскрутка сайта (4)
- PHP скрипты (3)
Реклама :
Книги и учебники :
- Шаблоны сайтов (6)
- Книги и учебники (2)
Компьютер и интернет :
Поиск по сайту :
Реклама :
Облако меток :
Бесплатная подписка :
Статистика :
- Популярность (3)
- Посещаемость (3)
- Поисковые запросы (3)