Вопросы по Keil

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Not_a_proger11
Родился
Сообщения: 1
Зарегистрирован: Пн апр 13, 2020 14:31:04

Вопросы по Keil

Сообщение Not_a_proger11 »

Здравствуйте ,мне надо передать по UART число в блоке данных с помощью функции :
void USART2_IRQHandler(void) //function obrabotchik preryvaniya
{

if ( USART_GetITStatus(USART2, USART_IT_RXNE) )
{
USART_ClearITPendingBit(USART2, USART_IT_RXNE);
RX_buffer[RX_write] = USART_ReceiveData(USART2);
RX_write++;
RX_ct++;
if (RX_ct == 2)
{
if (RX_buffer[0] == 0x01) //ID
{
ID();
}
}
}
}

void ID (uint8_t i)
{
while (!USART_GetFlagStatus(USART2, USART_SR_TXE)) {}
USART_SendData(USART2,i=100);
}

Но почему-то все равно выдает ошибку ..
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Вопросы по Keil

Сообщение VladislavS »

1. Используйте теги для оформления кода.
2. Ошибка секретная?
3. Функция ID определена с параметром, а вызывается без.
4. Что вы этим i=100 хотели сказать? USART_SendData(USART2,i=100);
5. Ну и алгоритм какой-то стрёмный. Я его не понимаю, а значит там наверняка ошибка.
7. А, да, самое то главное. Keil тут причем???
8. RXNE сбрасывается при чтении DR.
9. Проверять USART_IT_RXNE в регистре SR - грубая ошибка!
Спойлер6. Вам за количество символов в программе платят?

Код: Выделить всё

void USART2_IRQHandler()
{
  if (USART2->SR & USART_SR_RXNE)
  {
    RX_buffer[RX_ct++] = USART2->DR;    
    if ((RX_ct == 2) && (RX_buffer[0] == 0x01)) ID();
  }
}

void ID ()
{
  while (!(USART2->SR & USART_SR_TXE));
  USART2->DR=100;
}
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Вопросы по Keil

Сообщение VladislavS »

И ни тебе спасибо, ни тебе до свидания....
Аватара пользователя
sunjob
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Ср дек 08, 2010 19:03:17

Re: Вопросы по Keil

Сообщение sunjob »

спасибо... до свидания :о)
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «Разные вопросы по МК»