Кто любит RISC в жизни, заходим, не стесняемся.
Пн май 20, 2019 15:34:07
Тут дело в том, что данная программа - не первая программа с народстрима, которая у меня не заработала сразу. Так, предыдущая программа, которая также связана с LCD-дисплеем и выводит на него буквы/цифры, потребовала доработки (изначально она не выводила более одной буквы/цифры) из-за того, что в авторском коде (в том числе на его видео, что выглядит очень странно) фактически не был включен сдвиг курсора (хотя и заявлено, что включен). Я серьезно. Согласен, что все эти вопросы корректнее задавать на народстриме, но там автор не любит такие вопросы.
А вот здесь тоже наверняка проблема решается одной строчкой).
Пн май 20, 2019 15:49:15
Цифры - это цифры. Я отправляю 8-мизначные цифры, как делает автор народстрима
Именно поэтому я отправляю к книжкам и азам. Чтобы не было 8-мизначных цифр. Я так понимают, проект нужен чисто для обучения. Так вот, обучение без знания основ даже вредно.
Пн май 20, 2019 15:54:12
Цифры - это цифры. Я отправляю 8-мизначные цифры, как делает автор народстрима
Именно поэтому я отправляю к книжкам и азам. Чтобы не было 8-мизначных цифр. Я так понимают, проект нужен чисто для обучения. Так вот, обучение без знания основ даже вредно.
Считайте так, но от моих знаний сделанный кем-то код, выдаваемый автором за яко бы рабочий, не заработает, если он таковым не является и если его не допиливать.
Пн май 20, 2019 15:59:21
Удачи с 8-мизначными цифрами!
Пн май 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. Отличие будет в том что код напишите сами, а не куб сгенерирует и вы будете знать где находится обработчик прерывания и как код работает.
Вт май 21, 2019 12:58:36
Таким образом я прихожу к выводу, что чужой код, выдаваемый за рабочий, не работает у меня не потому что в нем есть ошибки, не потому, что, возможно, я не учел чего-то в железе, а, оказывается, потому что я просто чего-то не знаю. Т.е. по логике большинства тут написавших, если я что-то знаю, то код будет работать, даже если я к нему не притронусь. А, если я чего-то не знаю, то код у меня не заработает, пусть он хоть сто раз рабочий и проверенный всеми и вся. Ну, что ж...
Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк. Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди. Не хотите помочь человеку - не нужно писать тут то, что очевидно, ибо такие сообщения не несут пользы и решения проблемы. Коммент "Учи теорию" - это не помощь, это очевидная необходимость, такая же очевидная, как необходимость дышать воздухом в процессе изучения, так зачем писать очевидные вещи? Если вы не можете или не желаете помочь (даже возмездно), то почему вы не проходите мимо?
Вт май 21, 2019 13:20:51
А, если я чего-то не знаю, то код у меня не заработает,
Именно так!
Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.
Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.
Проблема не в коде, а в отсутствии базовых знаний.
Вт май 21, 2019 13:24:01
А, если я чего-то не знаю, то код у меня не заработает,
Именно так!
Адмиралы дорогие, вот чесслово, если вы действительно знаете, в чем косяк того авторского кода - то так и укажите на этот косяк.
Тебе уже раза три написали ответ. Нет в коде косяка. Посылать надо нормальную СТРОКУ СИМВОЛОВ, а не мифические 8-мизначные цифры.
Проблема не в коде, а в отсутствии базовых знаний.
Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?
Вт май 21, 2019 13:30:34
судя по тому огрызку кода, что был здесь приведен, приемник USART пишет в str, уменьшая счетчик байтов, и, как только счетчик обнулится, эта самая str выводитс на дисплей.
кода, который получает из USART байт и помещает его в str показано не было - о чем можно говорить?
предполагаю, что делается это по прерваниям, но в указанном ошметке кода ничего похожего на разрешение прерываний не увидел... делается оно где-то иди не делается вообще - не известно. обработчика прерываний тоже не видно.
что такое huart2 и где оно определено, тоже загадка.
поэтому вам надо либо найти ответы на все вопросы самостоятельно, либо, как минимум, выложить весь код целиком, и просить спецов в нем разобраться.
Вт май 21, 2019 13:42:01
Я поступил, как автор того урока: в Кубе сгенерил код, разрешив прерывания в 4-ом уарте. Далее - все по авторскому видео за исключением того, что у меня LCD подключен на другие пины, но строки, набранные ручками в самом коде, отображает.
Итог - прием строки по UART не работает. Код в Атоллике:
https://yadi.sk/d/1cnCC7-8lgnCIA
Вт май 21, 2019 13:46:45
разрешив прерывания в 4-ом уарте.
в USART в Configuration на USART2 включим прерывания
MX_USART2_UART_Init();
HAL_UART_Receive_IT(&huart2,(uint8_t*) str,8);
Вт май 21, 2019 13:49:41
Это очень замечательно, что Вы процитировали народстрим, но я работаю именно с 4-ым UARTом, а не со вторым. Более того - у меня плата не совсем Дискавери, но рабочая и другие коды, в том числе - с этим четвертым уартом, на ней работают.
Последний раз редактировалось
kotarnold Вт май 21, 2019 13:52:38, всего редактировалось 1 раз.
Вт май 21, 2019 13:52:28
kotarnold , это цитаты из вашего первого поста.
А С чем вы там "работаете" одному богу известно, кал это баловство
Вт май 21, 2019 13:54:25
kotarnold писал(а):Таким образом я прихожу к выводу, что чужой код, выдаваемый за рабочий, не работает у меня не потому что в нем есть ошибки, не потому, что, возможно, я не учел чего-то в железе
Вы можете однозначно сказать что в коде есть ошибки? Если да, то где? Если нет, то либо в коде нет ошибок, либо у вас недостаточно знаний ЯП чтобы их обнаружить.
kotarnold писал(а):Если Вы готовы помочь, но за деньги и с гарантиями, то укажите сумму, поговорим, как культурные люди.
С таким подходом как у вас только почасовая оплата и без гарантий, потому что нельзя гарантировать что вы сможете понять то чему вас будут пытаться обучить.
kotarnold писал(а):Коммент "Учи теорию" - это не помощь, это очевидная необходимость
Тогда почему не учите? Если не в состоянии понять почему не работает учебный код и теорию учить не хотите, зачем вообще взялись за программирование?
kotarnold писал(а):Могли бы Вы привести пример строки символов, который подойдет для обсуждаемой программы?
Судя по кому, строка в формате ASCII
https://ru.wikipedia.org/wiki/ASCIIARV писал(а):что такое huart2 и где оно определено, тоже загадка.
Прерывания находяться в отдельном файле сгенерированом кубом. Выше я писал что лучше отказаться от куба на этапе обучения поскольку он многое скрывает и не все очевидно.
ARV писал(а):что такое huart2 и где оно определено, тоже загадка.
Это указатель на UART2.
kotarnold писал(а):я работаю именно с 4-ым UARTом
В этом коде UART2.
https://radiokot.ru/forum/viewtopic.php?f=59&t=163168
Последний раз редактировалось
Мурик Вт май 21, 2019 13:55:18, всего редактировалось 2 раз(а).
Вт май 21, 2019 13:54:56
Да, Вы правы. Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда. UART4, конечно же.
Вт май 21, 2019 13:57:41
kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?
Вт май 21, 2019 14:03:54
Вы можете однозначно сказать что в коде есть ошибки? Если да, то где? Если нет, то либо в коде нет ошибок, либо у вас недостаточно знаний ЯП чтобы их обнаружить.
В коде есть ошибки, так как он не работает на заведомо рабочей плате.
С таким подходом как у вас только почасовая оплата и без гарантий, потому что нельзя гарантировать что вы сможете понять то чему вас будут пытаться обучить.
Я не прошу обучить, я прошу указать на конкретные ошибки в коде и на варианты их исправления.
Тогда почему не учите? Если не в состоянии понять почему не работает учебный код и теорию учить не хотите, зачем вообще взялись за программирование?
О, тут всё просто: я считаю, что учебный код должен работать на заведомо рабочих платах.
Судя по кому, строка в формате ASCII
https://ru.wikipedia.org/wiki/ASCII Спасибо, но я просил пример, а не теорию.
Выше я писал что лучше отказаться от куба на этапе обучения поскольку он многое скрывает и не все очевидно.
Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?
Добавлено after 1 minute 46 seconds:kotarnold писал(а):Это я, после того, как в сотый раз переделал код, стер всё, что сам наделал, скопировал с сайта и, забыв подправить, написал сюда.
То есть вы создали проект в кубе, сгенерировали код и потом его частично заменили на тот что взяли с сайта?
Да. Я задефайнил пины, связанные с LCD под свою плату, а также использовал UART4, а не UART2.
Вт май 21, 2019 14:06:52
Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?
Честно говоря ту хрень , вброшенную клоуномвкепке, язык не поворачивается назвать примером. Бред чистой воды, бездумное натыкивание...
Вт май 21, 2019 14:31:30
kotarnold писал(а):В коде есть ошибки, так как он не работает на заведомо рабочей плате.
Повторюсь. Если утверждаете что в коде есть ошибки, укажите где они. Если не знаете, то в коде либо их нет или у вас нет знаний ЯП чтобы их обнаружить. Выводы делайте сами.
kotarnold писал(а):Я не прошу обучить, я прошу указать на конкретные ошибки в коде и на варианты их исправления.
Сложно найти черную кошку в темной комнате, особенно если ее там нет... Не думали о том что в коде на сайте автора ошибок нет, а это вы их где-то допустили?
kotarnold писал(а):О, тут всё просто: я считаю, что учебный код должен работать на заведомо рабочих платах.
Попробуйте запустить код ничего в нем не меняя и на той же плате что у автора. Наверняка он окажется рабочим.
kotarnold писал(а):Спасибо, но я просил пример, а не теорию.
Пример строки в формате ASCII? Скопируйте с форума через буфер обмена любую строку и будет пример.
kotarnold писал(а):Тогда почему код, сгенерированный точно также тем же кубом у автора народстрима работает, а у меня - нет?
Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много.
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.
Вт май 21, 2019 15:30:45
Повторюсь. Если утверждаете что в коде есть ошибки, укажите где они. Если не знаете, то в коде либо их нет или у вас нет знаний ЯП чтобы их обнаружить. Выводы делайте сами.
Повторюсь, если бы ошибок не было, то всё бы работало.
Сложно найти черную кошку в темной комнате, особенно если ее там нет... Не думали о том что в коде на сайте автора ошибок нет, а это вы их где-то допустили?
Нет, потому что я следовал строго в соответствии с инструкциями в переносе на свой контроллер.
Попробуйте запустить код ничего в нем не меняя и на той же плате что у автора. Наверняка он окажется рабочим.
Обязательно попробую после того, как разберусь с кодом для того контроллера, с которым работаю сейчас. Дискавери у меня, как ни странно, есть.
Пример строки в формате ASCII? Скопируйте с форума через буфер обмена любую строку и будет пример.
О, хоть что-то содержательное написали. Невероятно.
Версия куба и библиотек точно такая же? Настройки проекта такие же как у автора примеров? Иначе вы могли допустить ошибку в конфигурации проекта или что-то не исправить в коде (про ошибку UART2 и UART4 выше написали) или столкнутся с различиями версий и т. д. Причин может быть много.
Прежде чем утверждать что код на сайте нерабочий, нужно убедится что вы все правильно сделали.
На основании того, что я сделал всё то же, что сделал автор, я предполагаю, что он кое-что скрыл. Как уже и оказалось в случае с процедурой вывода строки на дисплей из другого урока, о чем я писал ранее.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.