реклама на сайте
подробности

 
 
> USART STM32F103, Помогите начать
MiklPolikov
сообщение Jun 9 2015, 07:13
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Вроде бы настраиваю USART и передаю байт, а на ноге PA2 TX ничего нет, всегда высокий уровень. Подскажите, что я делаю неправильно ?

Код
   /////////////////настройка порта ///////////////////

   RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;

   //No remap (CTS/PA0, RTS/PA1, TX/PA2, RX/PA3, CK/PA4)
   AFIO->MAPR &=~ AFIO_MAPR_USART2_REMAP;  

  //UART TX //выход
   GPIOA->CRL &=~ GPIO_CRL_CNF3;
   GPIOA->CRL |= GPIO_CRL_CNF3_1;
   GPIOA->CRL |= GPIO_CRL_MODE3;

  //UART RX  //вход
   GPIOA->CRL &=~ GPIO_CRL_CNF2;
   GPIOA->CRL |= GPIO_CRL_CNF2_0;
   GPIOA->CRL &=~ GPIO_CRL_MODE2;  


  /////////////////настройка USART //////////////////

   RCC->APB1ENR|=RCC_APB1ENR_USART2EN;

   RCC->APB1RSTR|=RCC_APB1RSTR_USART2RST;
   RCC->APB1RSTR &=~ RCC_APB1RSTR_USART2RST;

   //для получения бодрейта 9600 при частоте 36МГц   делитель = 234.375   => 0.375 * 16 = 6
   USART2->BRR=(134<<4)|(6<<0);
  
   USART2->CR1 |=USART_CR1_TE; //передача включена
   USART2->CR1 |=USART_CR1_RE;  //приём включен

   USART2->CR1|=USART_CR1_UE;  //включили USART
  

  ////////////////передаём байт ////////////////////
  while(1)
{
   while(!(USART2->SR & USART_SR_TXE)){}
   USART2->DR=123;
   while(!(USART2->SR & USART_SR_TC)){}
}


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 19:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016