Easyelectronics.ru

Электроника для всех
Текущее время: 29 окт 2020, 22:33

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Прием строки символов по USART
СообщениеДобавлено: 08 авг 2012, 07:12 
Заглядывает иногда

Зарегистрирован: 21 окт 2011, 09:25
Сообщения: 71
Откуда: Уфа
Не пойму почему по USART2 принимается только часть слова, посланного через терминал с компа на мк.
Вместо "Hello!" приходит "Hel!"

код:

Код:
uint8_t Buffer[256];
uint8_t i;
uint8_t tmp;


.......


void USART2_IRQHandler(void)
{

   if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
   {
       USART_ClearITPendingBit(USART2, USART_IT_RXNE);
       Buffer[i++] = (char)(USART_ReceiveData(USART2));
   }
   print(Buffer);

   i = (uint8_t)(sizeof(Buffer));
   while(i--)
   {
      Buffer[i]= 0;
   }
   i=0;
}


//может всетаки дело в функции print

void print(const char* str)
{
    int i = 0;
    uint8_t CHAR_ID;
    while(str[i])
    {
        USART_SendData(USART2, (uint8_t) str[i]);
        CHAR_ID = str[i];
        i++;
        while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET) {}
    }
}


Усарт настроен правильно, проблем с передачей и приемом 1го символа нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прием строки символов по USART
СообщениеДобавлено: 09 авг 2012, 12:41 
Заглядывает иногда

Зарегистрирован: 19 июл 2012, 10:52
Сообщения: 39
А может все-таки в функции USART_SendData()?
Нахуа CHAR_ID = str[i]; ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Прием строки символов по USART
СообщениеДобавлено: 09 авг 2012, 13:26 
Старожил

Зарегистрирован: 30 апр 2010, 22:56
Сообщения: 1589
Откуда: Киев
Так как-то в перывании на прием делать отправку и ждать в цикле - не комильфо совсем.
Вот представь - еще пара сиволов пришло, а прерывание еще не обработалось, потому что тупим и ждем отправки?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 


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


Кто сейчас на конференции

Сейчас этот форум просматривают: Eddy_Em


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB