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

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

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

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

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

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


 
Опции темы
Непрочитано 03.05.2017, 13:04  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Избавляюсь от HAL:

в коде бит TE устанавливается, а на картинке не установлен. Попробуйте UE не вручную.
На F401 USART2 с такими настройками работает:
Код:
void USART_Init(void)
{	
	RCC-›APB1ENR |= RCC_APB1ENR_USART2EN;
	Usart2_set_baud_rate();
	USART2-›CR2 &= ~(USART_CR2_STOP);
	USART2-›CR1 |= USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE;
	USART2-›CR3 &= ~(USART_CR3_CTSE | USART_CR3_RTSE);
    /* Enable the selected USART by setting the UE bit in the CR1 register */
    USART2-›CR1 |= USART_CR1_UE;
	NVIC_SetPriority(USART2_IRQn, 0);
	NVIC_EnableIRQ(USART2_IRQn); 
}
Реклама:
oleg110592 вне форума  
Непрочитано 03.05.2017, 13:20  
MikhailSh
Временная регистрация
 
Регистрация: 06.05.2007
Сообщений: 75
Сказал спасибо: 18
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
MikhailSh на пути к лучшему
По умолчанию Re: Избавляюсь от HAL:

Пробую USART2.
Такая же картина: заходит в обработчик прерывания, при этом никаких флагов не выставлено. И разрешено одно прерывание RXNEIE.
Кто генерирует прерывание? Как узнать?
Код:
void STM32_UART_USART2_Init(void)
{

	//Настройка тактирования
	RCC-›AHB1ENR |=  RCC_AHB1ENR_GPIOAEN; //Тактирование GPIO
	RCC-›APB1ENR |= RCC_APB1ENR_USART2EN; //Тактирование модуля USART

	//Настройка порта
	GPIOA-›AFR[0] |= 0x00000700 | 0x00007000; //Альтернативная функция
	GPIOA-›MODER |= GPIO_MODER_MODER2_1 | GPIO_MODER_MODER3_1; //Режим работы
	GPIOA-›OSPEEDR |= GPIO_OSPEEDER_OSPEEDR2 | GPIO_OSPEEDER_OSPEEDR3; //Скорость порта
	//GPIOA-›OTYPER |= //Тип порта когда он является выходом
	GPIOA-›PUPDR |= GPIO_PUPDR_PUPDR2_0 | GPIO_PUPDR_PUPDR3_0; //Подтяжка порта
	
	USART2-›CR1 |= USART_CR1_RE | USART_CR1_TE | USART_CR1_RXNEIE | USART_CR1_UE; //Разрешить прием, передачу и прерывание по приему
	USART2-›BRR = 0x000016C9; //Скорость передачи: 115200
	
	NVIC_SetPriority(USART2_IRQn, 0); //Установка приоритета
	NVIC_EnableIRQ(USART2_IRQn); //Разрешение прерывания
}
oleg110592:
Бит TE потом вручную отключил, чтоб не мешал.
Можно посмотреть настройку портов и альтернативных функций?

Последний раз редактировалось MikhailSh; 03.05.2017 в 13:44.
MikhailSh вне форума  
Непрочитано 03.05.2017, 13:45  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Избавляюсь от HAL:

Сообщение от MikhailSh Посмотреть сообщение
Кто генерирует прерывание? Как узнать?
смотреть Status register USART_SR
Сообщение от MikhailSh Посмотреть сообщение
Можно посмотреть настройку портов и альтернативных функций?
тут же https://kazus.ru/forums/showpost.php...3&postcount=21

Последний раз редактировалось oleg110592; 03.05.2017 в 13:53.
oleg110592 вне форума  
Непрочитано 03.05.2017, 15:01  
MikhailSh
Временная регистрация
 
Регистрация: 06.05.2007
Сообщений: 75
Сказал спасибо: 18
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
MikhailSh на пути к лучшему
По умолчанию Re: Избавляюсь от HAL:

Сообщение от oleg110592 Посмотреть сообщение
смотреть Status register USART_SR
Проверил при приеме: Если все разрешения прерываний выключены - естественно обработчик прерывания не вызывается. Включил PEIE (просто так) - тоже самое. Только включаю RXNEIE - вызов прерывания. Флага RXNE - нет. Проверил каждый бит SR с помощью if в обработчике (Кроме TXE т. к. он всегда активный - передачи пока нет) - все неактивны.
Заметил: Если часто отсылать данные (COM Port Toolkit) то иногда RXNE, IDLE и ORE появляютя и сразу сбрасываются.
MikhailSh вне форума  
Непрочитано 03.05.2017, 15:26  
MikhailSh
Временная регистрация
 
Регистрация: 06.05.2007
Сообщений: 75
Сказал спасибо: 18
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
MikhailSh на пути к лучшему
По умолчанию Re: Избавляюсь от HAL:

Вот блин!
Убрал точку останова из обработчика прерывания и все заработало. Смотрю по заполнению памяти куда отправляются полученные данные.
MikhailSh вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
stm32 HAL UART - не могу понять Ioann_II ARM 57 18.11.2016 16:10
Прием знаковых данных по I2C HAL STM32 dimdidim ARM 9 25.07.2016 22:35


Часовой пояс GMT +4, время: 18:23.


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