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

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


Delau

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

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

После включения 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 pin
USART_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_pin
USART_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)
{
};
};

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

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

Лезем в даташит на свой МК. Смотрим по какому событию возникают прерывания по передатчику UART'а. Из этого узнаём, правильно ли так ведёт себя контроллер или нет.
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Я ещё раз просмотрел Reference manual. Вот информация касательно transmition complete:

After writing the last data into the USART_DR register, wait until TC=1. This indicates

that the transmission of the last frame is complete. This is required for instance when

the USART is disabled or enters the Halt mode to avoid corrupting the last

transmission

Косвенно указывает на то, что прерывание срабатывает после записи (передачи) последнего байта. Я ничего не записываю.

If a frame is transmitted (after the stop bit) and the TXE bit is set, the TC bit goes high. An

interrupt is generated if the TCIE bit is set in the USART_CR1 register.

After writing the last data into the USART_DR register, it is mandatory to wait for TC=1

before disabling the USART or causing the microcontroller to enter the low power mode (see

Figure246: TC/TXE behavior when transmitting)

TC устанавливается после передачи. Я ничего не передаю. Я просто включаю USART. У меня даже физические вывода не сконфигурированные.

Есть ещё информация по сбросу флага. Это собственно всё.

Проц у меня STM32F100

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

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Вот фото некоторых моих работ, небольшие поделки для местного производителя https://postimg.cc/gallery/4h72K81. Ранее доводилось ремонтировать оборудование гораздо серьезней. Программы на ПЛК кстати тоже сам писал.   На фото по ссылке, в ящике с УПП, установлен как раз тот самый бп, и те самые реле омрон. Там все работало, не один ящик был собран. Но после случился тот самый случай. Меняли блок, реле, без толку. Единственное что могло поменяться, так это завод изготовитель реле, партии приходили то с Тайваня, то с какой то европейской страны. По артикулу тот же, но головы и розетки друг к другу не совсем подходили.   В общих чертах, как работает обычный ИБП я представляю, выпрямить, сгладить, шим регулирование, трансформация высоких частот, сглаживание и фильтрация на выходе. Что такое ШИМ я тоже представляю, используется так же в частотниках, в выходах ПЛК для управления скажем драйверами, которые управляют в свою очередь пропорциональными гидроклаппанами или приводами. Про светодиоды, чем они питаются и их ВАХ то же в курсах. Про работу ибп со стаб. тока, у которого при изменении нагрузки меняется напряжение а ток стабилизируется на одном уровне, и про аварийный режим холостого хода тоже слыхал. Институтов не заканчивал, углубленно в ИБП не вникал. Был случай, который я описал, и есть вопросы, которые я уже задал.
    • Полный ноль, может, и не особо нужен. Но, если надо, например, один вольт и для этого требуется что-то колхозить на скорую руку (имея при этом на столе типа "универсальный источник"), то это как-то странно, согласитесь. Ну а "проблема масштабируемости" - это проблема не блока, а того, кто покупает Жигули с целью возить железобетонные плиты на стройку. 
    • Под "проблемой схемы" (правильнее надо было сказать - "недостатком схемы") я понимаю только то, что приходится учитывать допустимые напряжение питания ОУ, далеко не во всех схемах БП есть такое (например в таком же популярном ПиДБП из соседней ветки).  Но если соблюсти и уважить требования автора, и использовать рекомендуемые детали (и не подделки), то и работать будет нормально (не случайно этот БП такой популярный, что его клонировали в Поднебесной). А что касается "подводных камней", то на забугорном форуме посвященному этому блоку, некоторые из них расписывались, там уже под сотню страниц обсуждения https://www.electronics-lab.com/community/index.php?/topic/29563-0-30v-stabilized-power-supply/ У меня этот блок питания работает нормально, но я почти все детали что шли в наборе, заменил на б.у. и оригинальные (ОУ, транзисторы, даже резисторы). Что касается "1000в и 100а", пусть те кто этого хотят - пусть и дальше хотят, может в следующей жизни и дождутся..  Честно говоря, я не понимаю требований "регулировки ну прямо от нуля" для линейного лабораторного блока питания с входным напряжением 30+ в. Если нужно напряжение, скажем 1,5в, что мешает например, запитать схему от батарейки? Иначе нужно еще добавлять в схему переключение обмоток.
    • Я не совсем понимаю формулировку "проблема схемы". Линейный блок питания с характеристиками 0-30В, 0-2А и определенной величиной пульсаций, с точной регулировкой. Соответствует? Соответствует. Можно еще посмотреть как оно выдерживает плавающее сетевое напряжение и КЗ. Но почему-то у многих я вижу претензии в стиле "плохо масштабируется до 1000В - 100А". Наверное, такая задача и не ставилась и для этого можно использовать что-нибудь другое. Автор, например, очень доволен тем, что напряжение регулируется от нуля вольт, а не от напряжения стабилитрона как аналоги (то есть от 5 или сколько там у них было) - то есть это достижение на то время. ТЕС-41, который на 30В и 5А в раз в двадцать больше по размеру. И я не думаю, что он при этом в двадцать раз лучше - это уже совсем специфические задачи нужно решать и специфические вещи запитывать.
    • В разы проще. И иметь нормальный интерфейс для управления.
    • Генератор стабильного тока. Читал здесь http://the-epic-file.com/text/bookz/aoe_3/ch_03/aoe3_03_02b.htm#x_03_02_06 GST_0,5ом.cir
×
×
  • Создать...