Например TDA7294

Форум РадиоКот • Просмотр темы - Прием данных по UART и их отображение на дисплее
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 16:44:40

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


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



Начать новую тему Ответить на тему  [ Сообщений: 51 ]  1, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 12:41:37 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Разбираю урок с народстрима и не догоняю: а как он данные, пришедшие в UART, выводит на дисплей? Где sprintf того, что пришло в UART?

код:
Код:
int main(void)
{

  /* USER CODE BEGIN 1 */
   char str[9]={0};
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART2_UART_Init();

  /* USER CODE BEGIN 2 */
   LCD_ini();
   LCD_Clear();
   sprintf(str,"Stm32F407VG");
   LCD_String(str);
   LCD_SetPos(10, 2);
   sprintf(str,"ARM mc");
   LCD_String(str);
   HAL_UART_Receive_IT(&huart2, (uint8_t*) str, 8);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
   if(huart2.RxXferCount==0)
   {
      HAL_Delay(100);
      LCD_SetPos(0, 3);
      str[8]=0;
      LCD_String(str);
      HAL_UART_Receive_IT(&huart2, (uint8_t*) str, 8);
   }
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:07:14 
Мучитель микросхем
Аватар пользователя

Карма: 6
Рейтинг сообщений: 87
Зарегистрирован: Вс янв 09, 2011 23:05:37
Сообщений: 450
Откуда: СССР
Рейтинг сообщения: 0
Вот так выводит

Код:
while (1)
  {
   if(huart2.RxXferCount==0)
   {
      HAL_Delay(100);
      LCD_SetPos(0, 3);
      str[8]=0;
      LCD_String(str);
      HAL_UART_Receive_IT(&huart2, (uint8_t*) str, 8);
   }

_________________
Иван Сусанин - первый полупроводник :solder:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:09:31 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Ну это он пишет так. В реале, если разобрать построково, то вывода на дисплей в этом вайле не происходит.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:10:20 
Мучитель микросхем
Аватар пользователя

Карма: 6
Рейтинг сообщений: 87
Зарегистрирован: Вс янв 09, 2011 23:05:37
Сообщений: 450
Откуда: СССР
Рейтинг сообщения: 0
LCD_String(str); - как раз отправляет строку в дисплей

_________________
Иван Сусанин - первый полупроводник :solder:


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:14:37 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Во блин. А у меня не работает почему-то.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:17:12 
Мучитель микросхем
Аватар пользователя

Карма: 6
Рейтинг сообщений: 87
Зарегистрирован: Вс янв 09, 2011 23:05:37
Сообщений: 450
Откуда: СССР
Рейтинг сообщения: 0
Я конечно не знаток куба, но может здесь имелось в виду

Код:
if (huart2.RxXferCount != 0)


вместо

Код:
if (huart2.RxXferCount == 0)

_________________
Иван Сусанин - первый полупроводник :solder:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:28:49 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Попробовал. В итоге там, где должны отображаться цифры, принятые по UART, отображается лишний раз "ARM mc". Полагаю, это повтор от

Код:
sprintf(str,"ARM mc");


Т.е. для адекватного отображения данных, пришедших по UART в sprintf нужно передать str и данные, которые мы получили в прерывании. Не понимаю - за какую переменную их обозначать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:34:47 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Для начала откладываем плату в сторону и наслаждаемся занимательным чтивом
СпойлерИзображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:43:02 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Для начала откладываем плату в сторону и наслаждаемся занимательным чтивом
СпойлерИзображение


Да, это никогда не бывает лишним, но сейчас я пытаюсь найти информацию о том, как данные, полученные по USART в прерывании, обличить в чаровую переменную.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 14:05:44 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
но сейчас я пытаюсь найти информацию о том, как данные, полученные по USART в прерывании, обличить в чаровую переменную.
Начинать надо с начала! Чтобы хотя бы знать значение слов, которые ты пытаешься в случайном порядке употреблять.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 14:12:29 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
но сейчас я пытаюсь найти информацию о том, как данные, полученные по USART в прерывании, обличить в чаровую переменную.
Начинать надо с начала! Чтобы хотя бы знать значение слов, которые ты пытаешься в случайном порядке употреблять.


Спасибо, но мне удобнее разбираться по ходу пьесы, привязавшись к конкретным примерам, чем изучать сухую теорию.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 14:16:44 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Ну вот смотри. У тебя в примере есть код
Код:
char str[9]={0};

и
Код:
LCD_String(str);

Что из него тебе не понятно?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 14:22:42 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Непонятно то, почему, несмотря на это, данные с UARTa не отображаются. Переходник USB-UART исправен, данные доходят до нужного пина контроллера (Проверял осцилом), общий провод не оборван, Baud rate в программе и в терминале совпадают. Видимо, что-то в программе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 14:30:45 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Видимо, что-то в программе.
Трудно поспорить.

Отладчик есть? Найди обработчик прерываний UART и посмотри срабатывают ли они при приёме данных.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 14:45:19 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Видимо, что-то в программе.
Трудно поспорить.

Отладчик есть? Найди обработчик прерываний UART и посмотри срабатывают ли они при приёме данных.


Так, а вот это уже интересно. Я в режиме "Debug" прохожу по программе. Да, те надписи, которые появлялись ранее, теперь появляются в соответствии с шагами. А как мне попасть в обработчик прерываний? Я стою на коде

Код:
         HAL_UART_Receive_IT(&huart4, (uint8_t*)&str, 8);


и отсылаю с компа в UART цифры, но в Атоллике ничего не происходит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 14:58:48 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
и отсылаю с компа в UART цифры,
Что в твоём понимании "цифры" ?

но в Атоллике ничего не происходит.
А что должно произойти?

Может всё же с азов начать? Ну там "Hello world!" типа...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 15:01:35 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
и отсылаю с компа в UART цифры,
Что в твоём понимании "цифры" ?

но в Атоллике ничего не происходит.
А что должно произойти?

Может всё же с азов начать? Ну там "Hello world!" типа...


Цифры - это цифры. Я отправляю 8-мизначные цифры, как делает автор народстрима.

Считаете, что написание хелловорда однозначно даст мне достаточные навыки для работы с дебаггером, чтобы отслеживать прерывания по поступлению данных в уарт?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 15:10:20 
Мучитель микросхем
Аватар пользователя

Карма: 6
Рейтинг сообщений: 87
Зарегистрирован: Вс янв 09, 2011 23:05:37
Сообщений: 450
Откуда: СССР
Рейтинг сообщения: 0
Нужно отправлять не восьмизначные цифры, а 8 байт, то есть 8 цифр в диапазоне от 32 до 127 (ASCII таблица).

_________________
Иван Сусанин - первый полупроводник :solder:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 15:16:51 
Встал на лапы
Аватар пользователя

Карма: -2
Рейтинг сообщений: 1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 149
Откуда: Питер
Рейтинг сообщения: 0
Нужно отправлять не восьмизначные цифры, а 8 байт, то есть 8 цифр в диапазоне от 32 до 127 (ASCII таблица).



А как же тогда у автора происходит следующее: https://youtu.be/J0Rgh1Ndi-4?t=981 ???


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 15:22:44 
Мучитель микросхем
Аватар пользователя

Карма: 6
Рейтинг сообщений: 87
Зарегистрирован: Вс янв 09, 2011 23:05:37
Сообщений: 450
Откуда: СССР
Рейтинг сообщения: 0
Очень просто. Программа берет это число как строку, как набор ASCII символов. Строка "12345678" по уарту уйдет как набор байт 49 - 50 - 51 - 52 - 53 - 54 - 55 - 56
http://www.asciitable.com/

_________________
Иван Сусанин - первый полупроводник :solder:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 51 ]  1, ,  

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


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

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


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

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


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