Например TDA7294

Форум РадиоКот • Просмотр темы - USART Framing error[STM32F103]
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср дек 31, 2025 14:15:51

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: USART Framing error[STM32F103]
СообщениеДобавлено: Вс окт 05, 2014 14:17:45 
Первый раз сказал Мяу!

Карма: 2
Рейтинг сообщений: 0
Зарегистрирован: Сб дек 28, 2013 20:31:22
Сообщений: 35
Рейтинг сообщения: 0
Добрый день. Писал программу для пересылки через USART в терминал. Во прекрасно работает. В терминал шлется и символ и строка, но когда я проверяю тот же код логическим анализатором, он выдает ошибку Framing error, причем отмечает крестиком именно последний стоповый бит... Помогите разобраться в чем причина.
Собственно код:
Код:
void GPIO_Configuration(void)
{
   RCC->APB2ENR|= (RCC_APB2ENR_IOPAEN|RCC_APB2ENR_AFIOEN);

   //USART1_TX(PA9)
   GPIOA->CRH |= (GPIO_CRH_CNF9_1|GPIO_CRH_MODE9_0);

   //USART1_RX(PA10)
   GPIOA->CRH |=GPIO_CRH_CNF10_0;
   GPIOA->CRH &= ~GPIO_CRH_CNF10_1;
   GPIOA->CRH &= ~GPIO_CRH_MODE10;
}

void USART_Configuration(void)
{
   RCC->APB2ENR|= RCC_APB2ENR_USART1EN;

   USART1->CR1 = 0x0000;
   USART1->CR1 |= (USART_CR1_UE|USART_CR1_RE|USART_CR1_TE);
   USART1->BRR = 0xB65;
}

/*char data[128];
uint32_t count=0,j=0;

void USART_Send_Symbol(uint8_t data)
{
   while(!(USART1->SR & USART_SR_TC));
   USART1->DR=data;
}

void USART_Send_String(char *data, uint8_t terminate)
{

   uint8_t i = 0;
   while(data[i])
   {
      USART_Send_Symbol(data[i++]);
   }
   if(terminate)
   {
      USART_Send_Symbol('\r');
      USART_Send_Symbol('\n');
   }
}*/

int main(void)
{
   SYSCLK_Configuration();
   GPIO_Configuration();
   USART_Configuration();   
   while(!(USART1->SR & USART_SR_TC));
   USART1->DR='H';   
while(1)
   {
   
   }

}


Фото с логического анализатора прикреплено ниже!


Вложения:
csKfrSZ5WC4.jpg [47.14 KiB]
Скачиваний: 571
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART Framing error[STM32F103]
СообщениеДобавлено: Вс окт 05, 2014 16:38:17 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 156
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Научиться делать скриншоты и пользоваться лог. анализатором ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART Framing error[STM32F103]
СообщениеДобавлено: Вс окт 05, 2014 17:12:25 
Первый раз сказал Мяу!

Карма: 2
Рейтинг сообщений: 0
Зарегистрирован: Сб дек 28, 2013 20:31:22
Сообщений: 35
Рейтинг сообщения: 0
ой тыж гений какой. А по умнее что либо сказать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: USART Framing error[STM32F103]
СообщениеДобавлено: Вт окт 07, 2014 09:44:11 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 156
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Foxek писал(а):
А по умнее что либо сказать?

По умней что? Ляпнуть по умней высера - "ой тыж гений какой" ???? :)))
Легко

Код:
#define USARTCLK 72000000UL
#define BAUDRATE 115200UL


Код:
 
 void USART1_IRQHandler (void)
 {
 
   if(USART1->SR & USART_SR_RXNE)
   {
     UsartBuf =USART1->DR;
   
   }
   
 }



 void UsartInit(void)
 {
   RCC->APB2ENR |=RCC_APB2ENR_USART1EN | RCC_APB2ENR_IOPAEN;
   
    GPIOA->CRH &=~ (GPIO_CRH_CNF10 |GPIO_CRH_CNF9|GPIO_CRH_MODE10);
    GPIOA->CRH |= GPIO_CRH_CNF10_0 |GPIO_CRH_CNF9_1 | GPIO_CRH_MODE9;
   
    USART1->CR1 |= USART_CR1_TE |USART_CR1_RE |USART_CR1_RXNEIE;
    USART1->BRR =(USARTCLK+BAUDRATE/2)/BAUDRATE;
    USART1->CR1 |=USART_CR1_UE;
   
    NVIC_SetPriority(USART1_IRQn,15);
    NVIC_EnableIRQ(USART1_IRQn);
   
   
 }

void USART_write (char data)
  {
    while(!(USART1->SR & USART_SR_TXE));
    USART1->DR=data;
  }
void  USART_WR_String(const char *s)
{
        char c;
        while ((c = *s++)) {
                USART_write(c);
        }
}







Код:
 int main (void)
   {
        UsartBuf=0;
 SysTick_Config(SystemCoreClock /1000); 
 UsartInit();
   
  Delay_mS(100);
  while(1)
  {
  if(UsartBuf=='h')
  {
   UsartBuf =0;
   
   USART_WR_String("Hello world\r\n");
  }
  Delay_mS(100);
  }   
      return 0;
   }



Изображение
Изображение
Изображение



И вопрос к страждущему - модуль HC переведен из режима "команд" в режим "данные" ?


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y