Например TDA7294

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



Текущее время: Сб сен 26, 2020 03:16:00

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


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



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

Карма: -2
Рейтинг сообщений: -1
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 128
Откуда: Орёл
Рейтинг сообщения: 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
Рейтинг сообщений: 83
Зарегистрирован: Вс янв 09, 2011 23:05:37
Сообщений: 447
Откуда: СССР
Рейтинг сообщения: 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:


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

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

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


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

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

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

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

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


Вернуться наверх
 
Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

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

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


Вернуться наверх
 
Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Хорошие новости для покупателей источников питания! Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

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

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

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


вместо

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

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


Вернуться наверх
 


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

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

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


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


Вернуться наверх
 


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

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


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Прием данных по UART и их отображение на дисплее
СообщениеДобавлено: Пн май 20, 2019 13:43:02 
Встал на лапы
Аватар пользователя

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


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


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

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


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

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


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


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

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

и
Код:
LCD_String(str);

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


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

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


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

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

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


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

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

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


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

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


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


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

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

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

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


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

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

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

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


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

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


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

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

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


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

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



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


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

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

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


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

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 4


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

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


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