Она же даже не понимает что делает...Но придираться к человеку потому что он делает не так как вам нравится, ну перебор.
STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
Alex, со всем уважением, но ты не прав...
Последний раз редактировалось dosikus Вс авг 19, 2018 19:55:01, всего редактировалось 1 раз.
- Реклама
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
Завидую производству, на котором uart нечем посмотреть, чёрной завистью
Ну чему-то же их в учебных заведениях должны учить?
Re: STM32 новичку в ARM что к чему
VladislavS, категорически за.
И это при том , что имеется достаточно информации, и есть наиболее легкий путь запустить модуль .
И это при том , что имеется достаточно информации, и есть наиболее легкий путь запустить модуль .
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: STM32 новичку в ARM что к чему
VladislavS, ну почему же нечем. Она сказала, что тыкалась осциллом. Этого достаточно, чтобы оценить работоспособность.
dosikus, к слову. Лет десять назад я начал работать на одну контору. Мои знания об UART'е были не больше чем у этой девушки. А код был такой, что мне сейчас стыдно смотреть на него. Но никто мне пинка под зад не давал, а говорили - развивайся, что нужно - говори. Хотя могли вполне себе нанять более опытного.
Сейчас меня уважают и ценят. И заказы мне все оплачивают без всяких проблем, от мелочи (МК, детали, ...) до дорогого оборудования.
Так что, прав каждый, но по-своему ... .
dosikus, к слову. Лет десять назад я начал работать на одну контору. Мои знания об UART'е были не больше чем у этой девушки. А код был такой, что мне сейчас стыдно смотреть на него. Но никто мне пинка под зад не давал, а говорили - развивайся, что нужно - говори. Хотя могли вполне себе нанять более опытного.
Сейчас меня уважают и ценят. И заказы мне все оплачивают без всяких проблем, от мелочи (МК, детали, ...) до дорогого оборудования.
Так что, прав каждый, но по-своему ... .
- afz
- Опытный кот
- Сообщения: 744
- Зарегистрирован: Сб дек 22, 2012 08:17:42
- Откуда: Караганда, Казахстан
Re: STM32 новичку в ARM что к чему
Вообще-то это я сказал. Но, увы, в кубиках и HAL я не копенгаген, освоение этого дела в планах пока не стоит, так, что я пас.ARV писал(а):а как недавно соловьем разливался "поможем, научим..."
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
- Реклама
Re: STM32 новичку в ARM что к чему
[uquote="VladislavS",url="/forum/viewtopic.php?p=3440091#p3440091"]Завидую производству, на котором uart нечем посмотреть, чёрной завистью[/uquote]а я искренне сочувствую работникам
Ситуаций "инструмента нет, нихрена нет, но делайте" мне и в армии хватило.
Re: STM32 новичку в ARM что к чему
Здравствуйте, писал парсер intel hex формата, обратил внимание на 1 момент, отсутствует адреса 01ac - 01af , кто подскажет их значения 0x00 или (0xFF по умолчанию значения сектора после отчистки) ?
Спойлер
Код: Выделить всё
:10019000A1170108A1170108A1170108A11701085B
:0C01A000A1170108A1170108A117010810
:1001B00010B5054C237833B9044B13B10448AFF3A1
"80101a8" 161
"80101a9" 23
"80101aa" 1
"80101ab" 8
"80101b0" 16
"80101b1" 181
- afz
- Опытный кот
- Сообщения: 744
- Зарегистрирован: Сб дек 22, 2012 08:17:42
- Откуда: Караганда, Казахстан
Re: STM32 новичку в ARM что к чему
А передачу из МК в модуль осциллограф видит? А то, может быть, что-то не сошлось в инициализации, и модуль молчит, потому, что ему не на что отвечать?bezzabotna писал(а):К слову, модуль все равно не отвечает, если смотреть осциллографом и без всяких задержек. Скорее всего, модуль неисправен
Да, обновил кубики, попробовал тот свой проект, где пытался воевать с FATFS. Увы, для SDIO не предлагают драйвер LL. (Для FATFS тоже, но это вполне объяснимо.) А так - Project->Setting, на закладке Advanced Setting, в верхней ее половине, перечислены все задействованные компоненты, для каждого предложен драйвер HAL, некоторым этот HAL можно заменить на LL.
Попробовал закопаться в тот кубик, который HAL-драйвер SDIO. Увы, похоже, обмена с SDIO без ожидания не может быть, и ожидание - только прополкой. 100%-й уверенности в этом у меня, конечно, нет, но процентов 90 - точно. То есть, для моего отложенного проекта мне не светит собрать FATFS из кубиков. Ладно, как говорят у нас на востоке, если гора не идет к Магомету, Аллах с ними обоими...
На всякий случай, вот ссылка на обмен с SD уровня CMSIS/SPL. Автор нашел в примерах какого-то старого Кейла нечто, вроде драйвера для SD-card. Я попытался найти это в новом Кейле - увы. Однако, в том проекте нужные файлы есть и новый Кейл их молча съел. В общем, вроде-бы, все работает. Осталось взять FATFS Чана и дописать в его diskio.c вызовы подпрограмм из утянутой по ссылке (sdcard.c + sdcard.h), но пока я отложил это дело.
Добавлено after 44 minutes 7 seconds:
Даже так? А на хрена тогда нужен такой драйвер "высокого" уровня? Неудивительно, что народ не любит этот HAL. Если бы я делал драйвер высокого уровня для USART'а, я бы обязательно прикрутил к нему кольцевой буфер и, при обращении за очередным байтом, выдавал его оттуда. Или сигнал ошибки, если его нет. Элементарно, функция чтения имеет тип int, получил 0-255 - очередной считанный байт, получил -1 - ошибка. А по ошибке лезь в структуру управления этим USART'ом и смотри, что это - байт не поступил, или что хуже.arkhnchul писал(а):почти. Но буфер однобайтовый. Если оттуда не успели забрать предыдущий байт к моменту прихода следующего - поезд ушел.
Повторюсь, о HAL я не знаю, практически, ничего. Поэтому я и не отреагировал на эту ошибку - я-то подумал, что драйвер HAL действительно высокого уровня...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Re: STM32 новичку в ARM что к чему
[uquote="afz",url="/forum/viewtopic.php?p=3440790#p3440790"]А на хрена тогда нужен такой драйвер "высокого" уровня?[/uquote]там не все так прям плохо) HAL_UART_Receive принимает указатель на буфер; количество байт, которые в него надо запихать; таймаут, за который это надо сделать. Возвращает коды ошибок. Т.е. в принципе вполне рабочая функция. Однако что у нас деется в данном случае:
[uquote="bezzabotna",url="/forum/viewtopic.php?p=3438253#p3438253"][/uquote]
посылаем в устройство команду и ждем две секунды - за это время ответ, буде таковой возымеет место, давно пройдет, и в DR будет в лучшем случае его последний байт, а в SR - Overrun error. И только потом натравливаем функцию на несчастный huart - только затем, чтобы через четыре с половиной часа (0xFFFFFF миллисекунд) получить от нее HAL_TIMEOUT.
[uquote="bezzabotna",url="/forum/viewtopic.php?p=3438253#p3438253"]
Код: Выделить всё
HAL_UART_Transmit(&huart1, cmd, strlen(cmd), 0xFFFFFF);
HAL_Delay(2000);
HAL_UART_Receive(&huart1, reply, 3, 0xFFFFFF);посылаем в устройство команду и ждем две секунды - за это время ответ, буде таковой возымеет место, давно пройдет, и в DR будет в лучшем случае его последний байт, а в SR - Overrun error. И только потом натравливаем функцию на несчастный huart - только затем, чтобы через четыре с половиной часа (0xFFFFFF миллисекунд) получить от нее HAL_TIMEOUT.
Re: STM32 новичку в ARM что к чему
arkhnchul, об чем и речь, уж лучше пусть борщ...
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
обидели девушку, теперь никогда не узнаем че там было.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
Я и так тебе скажу чё там было - оно не работало!
Re: STM32 новичку в ARM что к чему
VladislavS писал(а):Я и так тебе скажу чё там было - оно не работало!
- afz
- Опытный кот
- Сообщения: 744
- Зарегистрирован: Сб дек 22, 2012 08:17:42
- Откуда: Караганда, Казахстан
Re: STM32 новичку в ARM что к чему
Я бы не сказал, что она вполне рабочая. Такое годится только для общения блоками наперед заданного размера. Это во-первых. И, во-вторых, на время приема этого блока основная задача встанет колом - работать будет только то, что в прерываниях. Даже и не соображу, где такое можно применить? Ну, разве что под управлением полноформатной многозадачной ОС с вытеснением менее приоритетных потоков более приоритетным при его готовности.arkhnchul писал(а):там не все так прям плохо) HAL_UART_Receive принимает указатель на буфер; количество байт, которые в него надо запихать; таймаут, за который это надо сделать. Возвращает коды ошибок. Т.е. в принципе вполне рабочая функция.
В общем, непродуманная ерунда. А нужен именно драйвер с кольцевым буфером, который в прерываниях сам снимает принятые байты и складывает в этот буфер, а в основной задаче выдает их оттуда или сигналит, что новый байт не поступил. Тут вполне работают и записи неопределенной длины (с разделителем в виде CR, например), и посимвольная активация, и все, что хочешь. И, в частности, позволит основной задаче не затыкаться наглухо, если очередной байт еще не пришел.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Re: STM32 новичку в ARM что к чему
[uquote="afz",url="/forum/viewtopic.php?p=3441132#p3441132"]Такое годится только для общения блоками наперед заданного размера.[/uquote]кто-то мешает указать размер буфера, а не ожидаемого блока?
[uquote="afz",url="/forum/viewtopic.php?p=3441132#p3441132"]Даже и не соображу, где такое можно применить?[/uquote]в огромном множестве случаев оно и так сойдет. Вот зачастую как будто не пофигу, где сидеть и тупить - в while(1) в main-е или в ожидании приема)
[uquote="afz",url="/forum/viewtopic.php?p=3441132#p3441132"]в прерываниях сам снимает принятые байты и складывает в этот буфер, а в основной задаче выдает их оттуда или сигналит, что новый байт не поступил[/uquote]какбэ этсамое, на блокирующих методах все не заканчивается
[uquote="afz",url="/forum/viewtopic.php?p=3441132#p3441132"]Даже и не соображу, где такое можно применить?[/uquote]в огромном множестве случаев оно и так сойдет. Вот зачастую как будто не пофигу, где сидеть и тупить - в while(1) в main-е или в ожидании приема)
[uquote="afz",url="/forum/viewtopic.php?p=3441132#p3441132"]в прерываниях сам снимает принятые байты и складывает в этот буфер, а в основной задаче выдает их оттуда или сигналит, что новый байт не поступил[/uquote]какбэ этсамое, на блокирующих методах все не заканчивается
Код: Выделить всё
This subsection provides a set of functions allowing to manage the UART asynchronous
and Half duplex data transfers.
(#) There are two modes of transfer:
(++) Blocking mode: The communication is performed in polling mode.
The HAL status of all data processing is returned by the same function
after finishing transfer.
(++) Non blocking mode: The communication is performed using Interrupts
or DMA, these APIs return the HAL status.
The end of the data processing will be indicated through the
dedicated UART IRQ when using Interrupt mode or the DMA IRQ when
using DMA mode.
The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks
will be executed respectively at the end of the transmit or receive process.
The HAL_UART_ErrorCallback() user callback will be executed when
a communication error is detected.
(#) Blocking mode APIs are:
(++) HAL_UART_Transmit()
(++) HAL_UART_Receive()
(#) Non Blocking mode APIs with Interrupt are:
(++) HAL_UART_Transmit_IT()
(++) HAL_UART_Receive_IT()
(++) HAL_UART_IRQHandler()
(#) Non Blocking mode functions with DMA are:
(++) HAL_UART_Transmit_DMA()
(++) HAL_UART_Receive_DMA()
(++) HAL_UART_DMAPause()
(++) HAL_UART_DMAResume()
(++) HAL_UART_DMAStop()
(#) A set of Transfer Complete Callbacks are provided in non blocking mode:
(++) HAL_UART_TxHalfCpltCallback()
(++) HAL_UART_TxCpltCallback()
(++) HAL_UART_RxHalfCpltCallback()
(++) HAL_UART_RxCpltCallback()
(++) HAL_UART_ErrorCallback()
Re: STM32 новичку в ARM что к чему
arkhnchul, согласись что без знания работы железа потуги с калокубом выльются в бездумное тырканье и пляски с бубном.
Что мы и наблюдаем...
Что мы и наблюдаем...
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="arkhnchul",url="/forum/viewtopic.php?p=3441169#p3441169"][uquote="afz",url="/forum/viewtopic.php?p=3441132#p3441132"]Такое годится только для общения блоками наперед заданного размера.[/uquote]кто-то мешает указать размер буфера, а не ожидаемого блока?[/uquote]
Дело в том, что готовность установится только когда буфер заполнится. Но это пол беды. Если на юарт вешать модбас, то там к нему в пару на каждом байте запускается таймер, чтобы отловить 3,5 символа паузы, понять что пакет таки приехал и начинать его разбирать.
Во всяком случае, есть DMA, с кольцевым буфером, все как любите. +активируем прерывание самого юарта, в обработчик засовываем запуск/перезапуск таймера, и когда он протикал наших 3,5 символа - разбираем буфер. Я так понимаю, счетчик байтов DMA тоже как-то можно подцепить, так что начало следующего пакета будет известно. Все так просто, сам не ожидал.
Добавлено after 2 minutes 4 seconds:
у Вас подгорает, что все идет к тому что любой неуч потыкав мышкой сделает бОльшую часть Вашей работы, что обесценивает Ваши знания. Согласен, обидно.
Дело в том, что готовность установится только когда буфер заполнится. Но это пол беды. Если на юарт вешать модбас, то там к нему в пару на каждом байте запускается таймер, чтобы отловить 3,5 символа паузы, понять что пакет таки приехал и начинать его разбирать.
Во всяком случае, есть DMA, с кольцевым буфером, все как любите. +активируем прерывание самого юарта, в обработчик засовываем запуск/перезапуск таймера, и когда он протикал наших 3,5 символа - разбираем буфер. Я так понимаю, счетчик байтов DMA тоже как-то можно подцепить, так что начало следующего пакета будет известно. Все так просто, сам не ожидал.
Добавлено after 2 minutes 4 seconds:
у Вас подгорает, что все идет к тому что любой неуч потыкав мышкой сделает бОльшую часть Вашей работы, что обесценивает Ваши знания. Согласен, обидно.
Re: STM32 новичку в ARM что к чему
Счас у тебя подгорит, в новых линейках есть аппаратная поддержка модбас. Но ты продолжай грызть калокуб...
А сказки о "гениальных" натыкивателях можешь нубам втюхивать...
А сказки о "гениальных" натыкивателях можешь нубам втюхивать...
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
ого, не видел. Спасибо, ща посмотрю
Добавлено after 1 minute 43 seconds:
ссылочку можно?
Добавлено after 1 minute 43 seconds:
ссылочку можно?
Re: STM32 новичку в ARM что к чему
На RM для F0 ?


