Перейти к содержанию
bbh_blocked_dnftl

Dx Portal Вызывается Прерывание После Включения Usart


Рекомендуемые сообщения

Добрый день форумчане!

 

 

 

После включения USART, через 1,25 mS приходит прерывание по завершению передачи.

 

Помогите понять почему так происходит? Это нормально или нет?

 

В код введены тестовые пины.  По  активности PC13 я и вижу вход в прерывание. Но, если я правильно понимаю, этого быть не должно.

 

#include "stm32f10x.h"#include "stm32f10x_usart.h"GPIO_InitTypeDef GPIO_InitStruct;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStruct;void USART1_IRQHandler(void){if (USART_GetITStatus (USART1, USART_IT_TC)){						 GPIO_SetBits(GPIOC, GPIO_Pin_13); // test pinUSART_ClearITPendingBit(USART1, USART_IT_TC);			 GPIO_ResetBits(GPIOC, GPIO_Pin_13); // test pin};};int main (void){	RCC_DeInit();					RCC_HSICmd(DISABLE);				RCC_LSICmd(DISABLE);					RCC_HSEConfig(RCC_HSE_ON);				while (RCC_WaitForHSEStartUp()==ERROR);		RCC_PREDIV1Config(RCC_PREDIV1_Source_HSE, RCC_PREDIV1_Div1);RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_3);	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);		RCC_PLLCmd(ENABLE);				while (RCC_GetSYSCLKSource() != 0x08) {};	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);		GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_0;		GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;	GPIO_Init(GPIOC, &GPIO_InitStruct);		USART_InitStructure.USART_BaudRate = 9600;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_2;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure);	 GPIO_SetBits(GPIOC, GPIO_Pin_0); // test_pinUSART_Cmd(USART1, ENABLE);USART_ClearFlag(USART1, USART_FLAG_TC);USART_ClearITPendingBit(USART1, USART_IT_TC);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStruct.NVIC_IRQChannelSubPriority = 3;NVIC_Init(&NVIC_InitStruct);USART_ITConfig(USART1, USART_IT_TC, ENABLE);while (1){};};

 

К сожалению осцилограмма не прикрепляется

Раздел: STM32

 

Читать дальше

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...