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

 
 
 
Reply to this topicStart new topic
> 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
gerber
сообщение Jun 9 2015, 08:17
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Настройка ног PA2 и PA3 перепутана.


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 9 2015, 09:02
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Надо включить тактирование альтернативных функций:
Код
RCC->APB2ENR  |= RCC_APB2ENR_AFIOEN;


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

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

 


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


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