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

 
 
> stm32 uart rs485, описание прерывания на прием в буфер (и на передачу)
dimka2001
сообщение Apr 20 2012, 15:57
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 129
Регистрация: 6-11-05
Пользователь №: 10 508



ситуация такая, нужно написать прерывание на прием в буфер и в зависимости от значения первого байта в ответ отправить другой буфер (около 20 байт). ниже кусок прерывания для одного байта. как его переделать для буфера??? помогите!!!


Код
void USART1_IRQHandler(void)
{
    //Receive Data register not empty interrupt
      if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
   {
       rx=1;
       USART_ClearITPendingBit(USART1, USART_IT_RXNE);
       tmp=USART_ReceiveData (USART1);

   }
      //Transmission complete interrupt
      if(USART_GetITStatus(USART1, USART_IT_TC) != RESET)
      {
          USART_ClearITPendingBit(USART1, USART_IT_TC);
          tx_end=1;
      }
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ohmjke
сообщение Apr 21 2012, 11:16
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 116
Регистрация: 27-01-10
Из: СПб
Пользователь №: 55 094



Ну, вообще да, изначально было сделано для AVR.
А почему неразумно для 32-х битных МК? Насколько я знаю, CM3 нормально работает с невыровненными данными. В же чем тогда "неправильность"?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 23 2012, 07:13
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(ohmjke @ Apr 21 2012, 14:16) *
Ну, вообще да, изначально было сделано для AVR.
А почему неразумно для 32-х битных МК? Насколько я знаю, CM3 нормально работает с невыровненными данными. В же чем тогда "неправильность"?

В скорости и количестве исполняемого кода.
Попробуйте заменить uint8_t на uint_fast8_t и посмотрите...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 02:15
Рейтинг@Mail.ru


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