Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Пн май 20, 2019 15:34:07

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

А вот здесь тоже наверняка проблема решается одной строчкой).

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

Пн май 20, 2019 15:49:15

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

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

Пн май 20, 2019 15:54:12

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


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

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

Пн май 20, 2019 15:59:21

Удачи с 8-мизначными цифрами!

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

Пн май 20, 2019 20:40:05

kotarnold писал(а):Тут дело в том, что данная программа - не первая программа с народстрима, которая у меня не заработала сразу.
Если третий муж бьет по морде, разве дело в муже?

kotarnold писал(а):Считайте так, но от моих знаний сделанный кем-то код, выдаваемый автором за яко бы рабочий, не заработает
Имея знания, вы сможете найти ошибку (если она есть) и исправить. Без знаний вы этого не сделайте. Решать вам.
Вопросы действительно элементарные. Как можно было не понять что LCD_String выводит строку на дисплей? Это же элементарно и при сомнении, можно посмотреть код функции чтобы это понять.
kotarnold писал(а):А как мне попасть в обработчик прерываний? Я стою на коде
Код:
HAL_UART_Receive_IT(&huart4, (uint8_t*)&str, 8);
и отсылаю с компа в UART цифры, но в Атоллике ничего не происходит.
Почему вы решили что вызов функции HAL_UART_Receive_IT это обработчик прерывания?
Я бы не рекомендовал на данном этапе использовать куб. Он только запутывает. Если не хочется работать с регистрами, используйте SPL. Отличие будет в том что код напишите сами, а не куб сгенерирует и вы будете знать где находится обработчик прерывания и как код работает.

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

Вт май 21, 2019 12:58:36

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

Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк. Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди. Не хотите помочь человеку - не нужно писать тут то, что очевидно, ибо такие сообщения не несут пользы и решения проблемы. Коммент "Учи теорию" - это не помощь, это очевидная необходимость, такая же очевидная, как необходимость дышать воздухом в процессе изучения, так зачем писать очевидные вещи? Если вы не можете или не желаете помочь (даже возмездно), то почему вы не проходите мимо?

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

Вт май 21, 2019 13:20:51

А, если я чего-то не знаю, то код у меня не заработает,
Именно так!

Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.
Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.

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

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

Вт май 21, 2019 13:24:01

А, если я чего-то не знаю, то код у меня не заработает,
Именно так!

Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.
Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.

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


Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?

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

Вт май 21, 2019 13:30:34

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

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

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

Вт май 21, 2019 13:42:01

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

Изображение

Итог - прием строки по UART не работает. Код в Атоллике: https://yadi.sk/d/1cnCC7-8lgnCIA

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

Вт май 21, 2019 13:46:45

разрешив прерывания в 4-ом уарте.



в USART в Configuration на USART2 включим прерывания


MX_USART2_UART_Init();


HAL_UART_Receive_IT(&huart2,(uint8_t*) str,8);

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

Вт май 21, 2019 13:49:41

Это очень замечательно, что Вы процитировали народстрим, но я работаю именно с 4-ым UARTом, а не со вторым. Более того - у меня плата не совсем Дискавери, но рабочая и другие коды, в том числе - с этим четвертым уартом, на ней работают.
Последний раз редактировалось kotarnold Вт май 21, 2019 13:52:38, всего редактировалось 1 раз.

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

Вт май 21, 2019 13:52:28

kotarnold , это цитаты из вашего первого поста.
А С чем вы там "работаете" одному богу известно, кал это баловство

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

Вт май 21, 2019 13:54:25

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 раз(а).

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

Вт май 21, 2019 13:54:56

Да, Вы правы. Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда. UART4, конечно же.

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

Вт май 21, 2019 13:57:41

kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?

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

Вт май 21, 2019 14:03:54

Вы можете однозначно сказать что в коде есть ошибки? Если да, то где? Если нет, то либо в коде нет ошибок, либо у вас недостаточно знаний ЯП чтобы их обнаружить.


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

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


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

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


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

Судя по кому, строка в формате ASCII https://ru.wikipedia.org/wiki/ASCII


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

Выше я писал что лучше отказаться от куба на этапе обучения поскольку он многое скрывает и не все очевидно.


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

Добавлено after 1 minute 46 seconds:
kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?


Да. Я задефайнил пины, связанные с LCD под свою плату, а также использовал UART4, а не UART2.

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

Вт май 21, 2019 14:06:52

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


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

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

Вт май 21, 2019 14:31:30

kotarnold писал(а):В коде есть ошибки, так как он не работает на заведомо рабочей плате.
Повторюсь. Если утверждаете что в коде есть ошибки, укажите где они. Если не знаете, то в коде либо их нет или у вас нет знаний ЯП чтобы их обнаружить. Выводы делайте сами.

kotarnold писал(а):Я не прошу обучить, я прошу указать на конкретные ошибки в коде и на варианты их исправления.
Сложно найти черную кошку в темной комнате, особенно если ее там нет... Не думали о том что в коде на сайте автора ошибок нет, а это вы их где-то допустили?

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

kotarnold писал(а):Спасибо, но я просил пример, а не теорию.
Пример строки в формате ASCII? Скопируйте с форума через буфер обмена любую строку и будет пример. :)

kotarnold писал(а):Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?
Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много. :)
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.

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

Вт май 21, 2019 15:30:45

Повторюсь. Если утверждаете что в коде есть ошибки, укажите где они. Если не знаете, то в коде либо их нет или у вас нет знаний ЯП чтобы их обнаружить. Выводы делайте сами.


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

Сложно найти черную кошку в темной комнате, особенно если ее там нет... Не думали о том что в коде на сайте автора ошибок нет, а это вы их где-то допустили?


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

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

Изображение

Пример строки в формате ASCII? Скопируйте с форума через буфер обмена любую строку и будет пример. :)


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

Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много. :)
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.


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