Прием данных по UART и их отображение на дисплее
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
Тут дело в том, что данная программа - не первая программа с народстрима, которая у меня не заработала сразу. Так, предыдущая программа, которая также связана с LCD-дисплеем и выводит на него буквы/цифры, потребовала доработки (изначально она не выводила более одной буквы/цифры) из-за того, что в авторском коде (в том числе на его видео, что выглядит очень странно) фактически не был включен сдвиг курсора (хотя и заявлено, что включен). Я серьезно. Согласен, что все эти вопросы корректнее задавать на народстриме, но там автор не любит такие вопросы.
А вот здесь тоже наверняка проблема решается одной строчкой).
А вот здесь тоже наверняка проблема решается одной строчкой).
- Реклама
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Прием данных по UART и их отображение на дисплее
[uquote="kotarnold",url="/forum/viewtopic.php?p=3636625#p3636625"]Цифры - это цифры. Я отправляю 8-мизначные цифры, как делает автор народстрима[/uquote]Именно поэтому я отправляю к книжкам и азам. Чтобы не было 8-мизначных цифр. Я так понимают, проект нужен чисто для обучения. Так вот, обучение без знания основ даже вредно.
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
[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 и их отображение на дисплее
Удачи с 8-мизначными цифрами!
Re: Прием данных по UART и их отображение на дисплее
Если третий муж бьет по морде, разве дело в муже?kotarnold писал(а):Тут дело в том, что данная программа - не первая программа с народстрима, которая у меня не заработала сразу.
Имея знания, вы сможете найти ошибку (если она есть) и исправить. Без знаний вы этого не сделайте. Решать вам.kotarnold писал(а):Считайте так, но от моих знаний сделанный кем-то код, выдаваемый автором за яко бы рабочий, не заработает
Вопросы действительно элементарные. Как можно было не понять что LCD_String выводит строку на дисплей? Это же элементарно и при сомнении, можно посмотреть код функции чтобы это понять.
Почему вы решили что вызов функции HAL_UART_Receive_IT это обработчик прерывания?kotarnold писал(а):А как мне попасть в обработчик прерываний? Я стою на кодеи отсылаю с компа в UART цифры, но в Атоллике ничего не происходит.Код: Выделить всё
HAL_UART_Receive_IT(&huart4, (uint8_t*)&str, 8);
Я бы не рекомендовал на данном этапе использовать куб. Он только запутывает. Если не хочется работать с регистрами, используйте SPL. Отличие будет в том что код напишите сами, а не куб сгенерирует и вы будете знать где находится обработчик прерывания и как код работает.
- Реклама
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
Таким образом я прихожу к выводу, что чужой код, выдаваемый за рабочий, не работает у меня не потому что в нем есть ошибки, не потому, что, возможно, я не учел чего-то в железе, а, оказывается, потому что я просто чего-то не знаю. Т.е. по логике большинства тут написавших, если я что-то знаю, то код будет работать, даже если я к нему не притронусь. А, если я чего-то не знаю, то код у меня не заработает, пусть он хоть сто раз рабочий и проверенный всеми и вся. Ну, что ж...
Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк. Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди. Не хотите помочь человеку - не нужно писать тут то, что очевидно, ибо такие сообщения не несут пользы и решения проблемы. Коммент "Учи теорию" - это не помощь, это очевидная необходимость, такая же очевидная, как необходимость дышать воздухом в процессе изучения, так зачем писать очевидные вещи? Если вы не можете или не желаете помочь (даже возмездно), то почему вы не проходите мимо?
Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк. Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди. Не хотите помочь человеку - не нужно писать тут то, что очевидно, ибо такие сообщения не несут пользы и решения проблемы. Коммент "Учи теорию" - это не помощь, это очевидная необходимость, такая же очевидная, как необходимость дышать воздухом в процессе изучения, так зачем писать очевидные вещи? Если вы не можете или не желаете помочь (даже возмездно), то почему вы не проходите мимо?
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Прием данных по UART и их отображение на дисплее
[uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]А, если я чего-то не знаю, то код у меня не заработает,[/uquote]Именно так!
[uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.[/uquote]Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.
Проблема не в коде, а в отсутствии базовых знаний.
[uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.[/uquote]Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.
Проблема не в коде, а в отсутствии базовых знаний.
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
[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]
Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?
[uquote="kotarnold",url="/forum/viewtopic.php?p=3637081#p3637081"]Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.[/uquote]Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.
Проблема не в коде, а в отсутствии базовых знаний.[/uquote]
Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18561
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Прием данных по UART и их отображение на дисплее
судя по тому огрызку кода, что был здесь приведен, приемник USART пишет в str, уменьшая счетчик байтов, и, как только счетчик обнулится, эта самая str выводитс на дисплей.
кода, который получает из USART байт и помещает его в str показано не было - о чем можно говорить?
предполагаю, что делается это по прерваниям, но в указанном ошметке кода ничего похожего на разрешение прерываний не увидел... делается оно где-то иди не делается вообще - не известно. обработчика прерываний тоже не видно.
что такое huart2 и где оно определено, тоже загадка.
поэтому вам надо либо найти ответы на все вопросы самостоятельно, либо, как минимум, выложить весь код целиком, и просить спецов в нем разобраться.
кода, который получает из USART байт и помещает его в str показано не было - о чем можно говорить?
предполагаю, что делается это по прерваниям, но в указанном ошметке кода ничего похожего на разрешение прерываний не увидел... делается оно где-то иди не делается вообще - не известно. обработчика прерываний тоже не видно.
что такое huart2 и где оно определено, тоже загадка.
поэтому вам надо либо найти ответы на все вопросы самостоятельно, либо, как минимум, выложить весь код целиком, и просить спецов в нем разобраться.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
Я поступил, как автор того урока: в Кубе сгенерил код, разрешив прерывания в 4-ом уарте. Далее - все по авторскому видео за исключением того, что у меня LCD подключен на другие пины, но строки, набранные ручками в самом коде, отображает.

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

Итог - прием строки по UART не работает. Код в Атоллике: https://yadi.sk/d/1cnCC7-8lgnCIA
Re: Прием данных по UART и их отображение на дисплее
[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 и их отображение на дисплее
Это очень замечательно, что Вы процитировали народстрим, но я работаю именно с 4-ым UARTом, а не со вторым. Более того - у меня плата не совсем Дискавери, но рабочая и другие коды, в том числе - с этим четвертым уартом, на ней работают.
Последний раз редактировалось kotarnold Вт май 21, 2019 13:52:38, всего редактировалось 1 раз.
Re: Прием данных по UART и их отображение на дисплее
kotarnold , это цитаты из вашего первого поста.
А С чем вы там "работаете" одному богу известно, кал это баловство
А С чем вы там "работаете" одному богу известно, кал это баловство
Re: Прием данных по UART и их отображение на дисплее
Вы можете однозначно сказать что в коде есть ошибки? Если да, то где? Если нет, то либо в коде нет ошибок, либо у вас недостаточно знаний ЯП чтобы их обнаружить.kotarnold писал(а):Таким образом я прихожу к выводу, что чужой код, выдаваемый за рабочий, не работает у меня не потому что в нем есть ошибки, не потому, что, возможно, я не учел чего-то в железе
С таким подходом как у вас только почасовая оплата и без гарантий, потому что нельзя гарантировать что вы сможете понять то чему вас будут пытаться обучить.kotarnold писал(а):Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди.
Тогда почему не учите? Если не в состоянии понять почему не работает учебный код и теорию учить не хотите, зачем вообще взялись за программирование?kotarnold писал(а):Коммент "Учи теорию" - это не помощь, это очевидная необходимость
Судя по кому, строка в формате ASCII https://ru.wikipedia.org/wiki/ASCIIkotarnold писал(а):Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?
Прерывания находяться в отдельном файле сгенерированом кубом. Выше я писал что лучше отказаться от куба на этапе обучения поскольку он многое скрывает и не все очевидно.ARV писал(а):что такое huart2 и где оно определено, тоже загадка.
Это указатель на UART2.ARV писал(а):что такое huart2 и где оно определено, тоже загадка.
В этом коде UART2. https://radiokot.ru/forum/viewtopic.php?f=59&t=163168kotarnold писал(а):я работаю именно с 4-ым UARTом
Последний раз редактировалось Мурик Вт май 21, 2019 13:55:18, всего редактировалось 2 раза.
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
Да, Вы правы. Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда. UART4, конечно же.
Re: Прием данных по UART и их отображение на дисплее
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
[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"]
Да. Я задефайнил пины, связанные с LCD под свою плату, а также использовал UART4, а не UART2.
В коде есть ошибки, так как он не работает на заведомо рабочей плате.
[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"]
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?[/uquote]kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
Да. Я задефайнил пины, связанные с LCD под свою плату, а также использовал UART4, а не UART2.
Re: Прием данных по UART и их отображение на дисплее
[uquote="kotarnold",url="/forum/viewtopic.php?p=3637132#p3637132"]Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?[/uquote]
Честно говоря ту хрень , вброшенную клоуномвкепке, язык не поворачивается назвать примером. Бред чистой воды, бездумное натыкивание...
Честно говоря ту хрень , вброшенную клоуномвкепке, язык не поворачивается назвать примером. Бред чистой воды, бездумное натыкивание...
Re: Прием данных по UART и их отображение на дисплее
Повторюсь. Если утверждаете что в коде есть ошибки, укажите где они. Если не знаете, то в коде либо их нет или у вас нет знаний ЯП чтобы их обнаружить. Выводы делайте сами.kotarnold писал(а):В коде есть ошибки, так как он не работает на заведомо рабочей плате.
Сложно найти черную кошку в темной комнате, особенно если ее там нет... Не думали о том что в коде на сайте автора ошибок нет, а это вы их где-то допустили?kotarnold писал(а):Я не прошу обучить, я прошу указать на конкретные ошибки в коде и на варианты их исправления.
Попробуйте запустить код ничего в нем не меняя и на той же плате что у автора. Наверняка он окажется рабочим.kotarnold писал(а):О, тут всё просто: я считаю, что учебный код должен работать на заведомо рабочих платах.
Пример строки в формате ASCII? Скопируйте с форума через буфер обмена любую строку и будет пример.kotarnold писал(а):Спасибо, но я просил пример, а не теорию.
Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много.kotarnold писал(а):Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.
- kotarnold
- Нашел транзистор. Понюхал.
- Сообщения: 157
- Зарегистрирован: Пн мар 14, 2016 15:38:50
- Откуда: Питер
Re: Прием данных по UART и их отображение на дисплее
[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]
На основании того, что я сделал всё то же, что сделал автор, я предполагаю, что он кое-что скрыл. Как уже и оказалось в случае с процедурой вывода строки на дисплей из другого урока, о чем я писал ранее.
Повторюсь, если бы ошибок не было, то всё бы работало.
[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="Мурик",url="/forum/viewtopic.php?p=3637146#p3637146"]Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много.
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.[/uquote]
На основании того, что я сделал всё то же, что сделал автор, я предполагаю, что он кое-что скрыл. Как уже и оказалось в случае с процедурой вывода строки на дисплей из другого урока, о чем я писал ранее.


