Прием данных по UART и их отображение на дисплее

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

Тут дело в том, что данная программа - не первая программа с народстрима, которая у меня не заработала сразу. Так, предыдущая программа, которая также связана с LCD-дисплеем и выводит на него буквы/цифры, потребовала доработки (изначально она не выводила более одной буквы/цифры) из-за того, что в авторском коде (в том числе на его видео, что выглядит очень странно) фактически не был включен сдвиг курсора (хотя и заявлено, что включен). Я серьезно. Согласен, что все эти вопросы корректнее задавать на народстриме, но там автор не любит такие вопросы.

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

Re: Прием данных по UART и их отображение на дисплее

Сообщение VladislavS »

[uquote="kotarnold",url="/forum/viewtopic.php?p=3636625#p3636625"]Цифры - это цифры. Я отправляю 8-мизначные цифры, как делает автор народстрима[/uquote]Именно поэтому я отправляю к книжкам и азам. Чтобы не было 8-мизначных цифр. Я так понимают, проект нужен чисто для обучения. Так вот, обучение без знания основ даже вредно.
Реклама
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3636665#p3636665"][uquote="kotarnold",url="/forum/viewtopic.php?p=3636625#p3636625"]Цифры - это цифры. Я отправляю 8-мизначные цифры, как делает автор народстрима[/uquote]Именно поэтому я отправляю к книжкам и азам. Чтобы не было 8-мизначных цифр. Я так понимают, проект нужен чисто для обучения. Так вот, обучение без знания основ даже вредно.[/uquote]

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

Re: Прием данных по UART и их отображение на дисплее

Сообщение VladislavS »

Удачи с 8-мизначными цифрами!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Прием данных по UART и их отображение на дисплее

Сообщение Мурик »

kotarnold писал(а):Тут дело в том, что данная программа - не первая программа с народстрима, которая у меня не заработала сразу.
Если третий муж бьет по морде, разве дело в муже?
kotarnold писал(а):Считайте так, но от моих знаний сделанный кем-то код, выдаваемый автором за яко бы рабочий, не заработает
Имея знания, вы сможете найти ошибку (если она есть) и исправить. Без знаний вы этого не сделайте. Решать вам.
Вопросы действительно элементарные. Как можно было не понять что LCD_String выводит строку на дисплей? Это же элементарно и при сомнении, можно посмотреть код функции чтобы это понять.
kotarnold писал(а):А как мне попасть в обработчик прерываний? Я стою на коде

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

HAL_UART_Receive_IT(&huart4, (uint8_t*)&str, 8);
и отсылаю с компа в UART цифры, но в Атоллике ничего не происходит.
Почему вы решили что вызов функции HAL_UART_Receive_IT это обработчик прерывания?
Я бы не рекомендовал на данном этапе использовать куб. Он только запутывает. Если не хочется работать с регистрами, используйте SPL. Отличие будет в том что код напишите сами, а не куб сгенерирует и вы будете знать где находится обработчик прерывания и как код работает.
Реклама
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

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

Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк. Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди. Не хотите помочь человеку - не нужно писать тут то, что очевидно, ибо такие сообщения не несут пользы и решения проблемы. Коммент "Учи теорию" - это не помощь, это очевидная необходимость, такая же очевидная, как необходимость дышать воздухом в процессе изучения, так зачем писать очевидные вещи? Если вы не можете или не желаете помочь (даже возмездно), то почему вы не проходите мимо?
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Прием данных по UART и их отображение на дисплее

Сообщение VladislavS »

[uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]А, если я чего-то не знаю, то код у меня не заработает,[/uquote]Именно так!

[uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.[/uquote]Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.

Проблема не в коде, а в отсутствии базовых знаний.
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3637092#p3637092"][uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]А, если я чего-то не знаю, то код у меня не заработает,[/uquote]Именно так!

[uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.[/uquote]Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.

Проблема не в коде, а в отсутствии базовых знаний.[/uquote]

Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18561
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Прием данных по UART и их отображение на дисплее

Сообщение ARV »

судя по тому огрызку кода, что был здесь приведен, приемник USART пишет в str, уменьшая счетчик байтов, и, как только счетчик обнулится, эта самая str выводитс на дисплей.
кода, который получает из USART байт и помещает его в str показано не было - о чем можно говорить?
предполагаю, что делается это по прерваниям, но в указанном ошметке кода ничего похожего на разрешение прерываний не увидел... делается оно где-то иди не делается вообще - не известно. обработчика прерываний тоже не видно.
что такое huart2 и где оно определено, тоже загадка.

поэтому вам надо либо найти ответы на все вопросы самостоятельно, либо, как минимум, выложить весь код целиком, и просить спецов в нем разобраться.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

Я поступил, как автор того урока: в Кубе сгенерил код, разрешив прерывания в 4-ом уарте. Далее - все по авторскому видео за исключением того, что у меня LCD подключен на другие пины, но строки, набранные ручками в самом коде, отображает.

Изображение

Итог - прием строки по UART не работает. Код в Атоллике: https://yadi.sk/d/1cnCC7-8lgnCIA
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Прием данных по UART и их отображение на дисплее

Сообщение dosikus »

[uquote="kotarnold",url="/forum/viewtopic.php?p=3637111#p3637111"]разрешив прерывания в 4-ом уарте.[/uquote]

в USART в Configuration на USART2 включим прерывания
MX_USART2_UART_Init();
HAL_UART_Receive_IT(&huart2,(uint8_t*) str,8);
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

Это очень замечательно, что Вы процитировали народстрим, но я работаю именно с 4-ым UARTом, а не со вторым. Более того - у меня плата не совсем Дискавери, но рабочая и другие коды, в том числе - с этим четвертым уартом, на ней работают.
Последний раз редактировалось kotarnold Вт май 21, 2019 13:52:38, всего редактировалось 1 раз.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Прием данных по UART и их отображение на дисплее

Сообщение dosikus »

kotarnold , это цитаты из вашего первого поста.
А С чем вы там "работаете" одному богу известно, кал это баловство
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Прием данных по UART и их отображение на дисплее

Сообщение Мурик »

kotarnold писал(а):Таким образом я прихожу к выводу, что чужой код, выдаваемый за рабочий, не работает у меня не потому что в нем есть ошибки, не потому, что, возможно, я не учел чего-то в железе
Вы можете однозначно сказать что в коде есть ошибки? Если да, то где? Если нет, то либо в коде нет ошибок, либо у вас недостаточно знаний ЯП чтобы их обнаружить.
kotarnold писал(а):Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди.
С таким подходом как у вас только почасовая оплата и без гарантий, потому что нельзя гарантировать что вы сможете понять то чему вас будут пытаться обучить.
kotarnold писал(а):Коммент "Учи теорию" - это не помощь, это очевидная необходимость
Тогда почему не учите? Если не в состоянии понять почему не работает учебный код и теорию учить не хотите, зачем вообще взялись за программирование?
kotarnold писал(а):Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?
Судя по кому, строка в формате ASCII https://ru.wikipedia.org/wiki/ASCII
ARV писал(а):что такое huart2 и где оно определено, тоже загадка.
Прерывания находяться в отдельном файле сгенерированом кубом. Выше я писал что лучше отказаться от куба на этапе обучения поскольку он многое скрывает и не все очевидно.
ARV писал(а):что такое huart2 и где оно определено, тоже загадка.
Это указатель на UART2.
kotarnold писал(а):я работаю именно с 4-ым UARTом
В этом коде UART2. https://radiokot.ru/forum/viewtopic.php?f=59&t=163168
Последний раз редактировалось Мурик Вт май 21, 2019 13:55:18, всего редактировалось 2 раза.
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

Да, Вы правы. Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда. UART4, конечно же.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Прием данных по UART и их отображение на дисплее

Сообщение Мурик »

kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

[uquote="Мурик",url="/forum/viewtopic.php?p=3637125#p3637125"]Вы можете однозначно сказать что в коде есть ошибки? Если да, то где? Если нет, то либо в коде нет ошибок, либо у вас недостаточно знаний ЯП чтобы их обнаружить.[/uquote]

В коде есть ошибки, так как он не работает на заведомо рабочей плате.

[uquote="Мурик",url="/forum/viewtopic.php?p=3637125#p3637125"]С таким подходом как у вас только почасовая оплата и без гарантий, потому что нельзя гарантировать что вы сможете понять то чему вас будут пытаться обучить.[/uquote]

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

[uquote="Мурик",url="/forum/viewtopic.php?p=3637125#p3637125"]Тогда почему не учите? Если не в состоянии понять почему не работает учебный код и теорию учить не хотите, зачем вообще взялись за программирование?[/uquote]

О, тут всё просто: я считаю, что учебный код должен работать на заведомо рабочих платах.

[uquote="Мурик",url="/forum/viewtopic.php?p=3637125#p3637125"]Судя по кому, строка в формате ASCII https://ru.wikipedia.org/wiki/ASCII[/uquote]

Спасибо, но я просил пример, а не теорию.

[uquote="Мурик",url="/forum/viewtopic.php?p=3637125#p3637125"]Выше я писал что лучше отказаться от куба на этапе обучения поскольку он многое скрывает и не все очевидно.[/uquote]

Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?

Добавлено after 1 minute 46 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=3637128#p3637128"]
kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?[/uquote]

Да. Я задефайнил пины, связанные с LCD под свою плату, а также использовал UART4, а не UART2.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Прием данных по UART и их отображение на дисплее

Сообщение dosikus »

[uquote="kotarnold",url="/forum/viewtopic.php?p=3637132#p3637132"]Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?[/uquote]

Честно говоря ту хрень , вброшенную клоуномвкепке, язык не поворачивается назвать примером. Бред чистой воды, бездумное натыкивание...
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Прием данных по UART и их отображение на дисплее

Сообщение Мурик »

kotarnold писал(а):В коде есть ошибки, так как он не работает на заведомо рабочей плате.
Повторюсь. Если утверждаете что в коде есть ошибки, укажите где они. Если не знаете, то в коде либо их нет или у вас нет знаний ЯП чтобы их обнаружить. Выводы делайте сами.
kotarnold писал(а):Я не прошу обучить, я прошу указать на конкретные ошибки в коде и на варианты их исправления.
Сложно найти черную кошку в темной комнате, особенно если ее там нет... Не думали о том что в коде на сайте автора ошибок нет, а это вы их где-то допустили?
kotarnold писал(а):О, тут всё просто: я считаю, что учебный код должен работать на заведомо рабочих платах.
Попробуйте запустить код ничего в нем не меняя и на той же плате что у автора. Наверняка он окажется рабочим.
kotarnold писал(а):Спасибо, но я просил пример, а не теорию.
Пример строки в формате ASCII? Скопируйте с форума через буфер обмена любую строку и будет пример. :)
kotarnold писал(а):Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?
Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много. :)
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.
Аватара пользователя
kotarnold
Нашел транзистор. Понюхал.
Сообщения: 157
Зарегистрирован: Пн мар 14, 2016 15:38:50
Откуда: Питер

Re: Прием данных по UART и их отображение на дисплее

Сообщение kotarnold »

[uquote="Мурик",url="/forum/viewtopic.php?p=3637146#p3637146"]Повторюсь. Если утверждаете что в коде есть ошибки, укажите где они. Если не знаете, то в коде либо их нет или у вас нет знаний ЯП чтобы их обнаружить. Выводы делайте сами.[/uquote]

Повторюсь, если бы ошибок не было, то всё бы работало.

[uquote="Мурик",url="/forum/viewtopic.php?p=3637146#p3637146"]Сложно найти черную кошку в темной комнате, особенно если ее там нет... Не думали о том что в коде на сайте автора ошибок нет, а это вы их где-то допустили?[/uquote]

Нет, потому что я следовал строго в соответствии с инструкциями в переносе на свой контроллер.

[uquote="Мурик",url="/forum/viewtopic.php?p=3637146#p3637146"]Попробуйте запустить код ничего в нем не меняя и на той же плате что у автора. Наверняка он окажется рабочим.[/uquote] Обязательно попробую после того, как разберусь с кодом для того контроллера, с которым работаю сейчас. Дискавери у меня, как ни странно, есть.

Изображение

[uquote="Мурик",url="/forum/viewtopic.php?p=3637146#p3637146"]Пример строки в формате ASCII? Скопируйте с форума через буфер обмена любую строку и будет пример. :)[/uquote]

О, хоть что-то содержательное написали. Невероятно.

[uquote="Мурик",url="/forum/viewtopic.php?p=3637146#p3637146"]Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много. :)
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.[/uquote]

На основании того, что я сделал всё то же, что сделал автор, я предполагаю, что он кое-что скрыл. Как уже и оказалось в случае с процедурой вывода строки на дисплей из другого урока, о чем я писал ранее.
Ответить

Вернуться в «ARM»