STM32. Урок 13. USART. Практические примеры. Часть 2

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 ม.ค. 2025

ความคิดเห็น • 87

  • @aleksandrkozlov9286
    @aleksandrkozlov9286 5 ปีที่แล้ว +1

    Спасибо за ваш труд!
    Хотелось бы увидеть работу с USART в режиме IT в ситуации когда нам не известна длина посылки, оч часто встречается.
    По подробнее про режим IDLE, и реализации на круговом регистре. и да без DMA, потом уже можно будет на DMA)) Заранее спасибо!

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว +2

      Пожалуйста). Планирую показать кольцевой буфер, как раз когда неизвестен размер посылок, для IT это актуально.
      Использование с DMA будет сразу после теории по теме DMA.

    • @aleksandrkozlov9286
      @aleksandrkozlov9286 5 ปีที่แล้ว +1

      Отлично! С нетерпением ждём

  • @djeminim6912
    @djeminim6912 ปีที่แล้ว +1

    Не понятно какой переходник usb - uart использовать какое питание на них подавать и как подключать. Код вроде написан, а как общаться не понятно.

    • @NRelectronics
      @NRelectronics  ปีที่แล้ว

      Переходник любой. Питание соответствующее. Мк питается от 3,3В, уровни соответствующие. Всё понятно.

  • @iaroslavsisenco4072
    @iaroslavsisenco4072 4 ปีที่แล้ว

    Спасибо за труд!

  • @НоваС
    @НоваС 4 ปีที่แล้ว

    Определенный так массив не заканчивается нулем. \0 добавляется в массивы, определенные через двойные кавычки: uint8_t data1[] = "\0\x01\x02\x03\x04\x05\x06\x07\x08\x09";

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      \0 - в начале не ставится.

  • @Alexcymantrene
    @Alexcymantrene ปีที่แล้ว

    огромное спасибо за видео, но позвольте сказать свое дилетантское мнение. Мне кажется лучше использовать библиотеку LL, HAL на мой взгляд очень тяжела для освоения передачи по uart начинающим. Спасибо за ваш классный канал!

    • @NRelectronics
      @NRelectronics  ปีที่แล้ว +1

      Вам спасибо за тёплые слова, не все это ценят. Хал для начала мне кажется будет легче чем CMSIS.

    • @Alexcymantrene
      @Alexcymantrene ปีที่แล้ว

      @@NRelectronics позвольте еще дополнить, когда вы перешли к режиму прерывания, то мне кажется лучше сказать для зрителя, что надо в конфигураторе CubeIde установить флаг глобального разрешения прерывания в модуле NVIC USART1

    • @NRelectronics
      @NRelectronics  ปีที่แล้ว +1

      Если я это не сказал, то конечно нужно. Ролик давно делал, не помню.

  • @ДимаДимов-в6п
    @ДимаДимов-в6п 5 ปีที่แล้ว

    Доброе время суток. Спасибо за урок. Вопрос от новичка можно использовать usart на stm32 в режиме
    single wire для подключение датчика температуры ds18b20. Или не взлетит ?

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว

      Доброе. Всегда пожалуйста, обучайтесь. Взлетит на uart, будет работать.

  • @avr_stm_pro2955
    @avr_stm_pro2955 3 ปีที่แล้ว

    Скажите в CubeIDE ,есть ограничения по коду?

    • @NRelectronics
      @NRelectronics  3 ปีที่แล้ว

      Нет ограничения по коду.

  • @Lownger
    @Lownger 4 ปีที่แล้ว

    В упор не могу понять, откуда взялись функции HAL_UART_RxCpltCallback и вторая с Tx. У меня IDE их не видит

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Написаны вручную. Хал ведь не все пишит. А раз не видит, значит не подтянуты библиотеки Хала.

  • @arkadikadavr2661
    @arkadikadavr2661 5 ปีที่แล้ว

    Хорошее видео, но почему шёпотом?

    • @NRelectronics
      @NRelectronics  5 ปีที่แล้ว +1

      Малая спала рядом)))

  • @stells47
    @stells47 5 ปีที่แล้ว

    спасибо!

  • @СергейМазуров-я3ъ
    @СергейМазуров-я3ъ 4 ปีที่แล้ว

    Во второй части, не указано, что в конструкторе нужно разрешить прерывания на USART. Чуть моск не вскипел :)

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

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

  • @Ironziz
    @Ironziz 4 ปีที่แล้ว

    Не подскажите пожалуйста, как 32 битное число перенести в массив ?

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว +1

      Нужно объявить и инициализировать массив с каким количеством элементов в массиве и запихнуть ваше 32-х разрядное число в массив, например в порядковый номер 0 в массиве, остальные элементы можно проинициализировать нулями... По хорошему видео на тему массивы нужно...

    • @Ironziz
      @Ironziz 4 ปีที่แล้ว

      @@NRelectronics насчёт видео, хорошая идея, всё о массивах и математических операциях с большими числами с использованием массивов 😅😅😅

    • @Ironziz
      @Ironziz 4 ปีที่แล้ว

      @@NRelectronics Я кстати использовал структуру memcpy, чтобы записать переменную в массив для передачи через UART, вроде работает, но я не знаю насколько целесообразна эта структура

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      @@Ironziz идея хорошая, но пока времени нет на это видео...

    • @Ironziz
      @Ironziz 4 ปีที่แล้ว

      @@NRelectronics надеюсь появится))), уроки очень познавательные, продолжайте в том же духе

  • @namename2031
    @namename2031 2 ปีที่แล้ว

    2:57 Что такое 0.5 или 1.5 бита?

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      Длительность стоп кадров.

    • @namename2031
      @namename2031 2 ปีที่แล้ว

      @@NRelectronics 1 бит это ноль или один.
      Не указано же в секундах 0.5 секунд.
      Как может быть половина от единицы?

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว +1

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

    • @namename2031
      @namename2031 2 ปีที่แล้ว

      @@NRelectronics Процент заполнения 50%?

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      А полтора бита 150%?)

  • @namename2031
    @namename2031 2 ปีที่แล้ว

    9:30 Процессы ведь последовательно выполняются, а не одновременно.
    Какая разница сколько занимает каждый из этих процессов.
    Я нашёл другое объяснение этому:
    Введите в гугле
    I'm trying to send data by STM32f103 to an Arduino board using UART.
    Ютюб лютует, комменты не пропускает.
    Нужно рассчитывать время, за которое передаётся весь массив данных и тактовую частоту.
    Какое то уж больно мутрное занятие.

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

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

    • @namename2031
      @namename2031 2 ปีที่แล้ว

      @@NRelectronics На форуме из интернета цитату из которого я привёл выше объясняется по другому.
      Продолжительность последующих процессов не имеет никакого значения.
      HAL_Delay может хоть один день продолжаться. HAL_Delay не влияет на последующую функцию HAL_UART_Transmit ну или наоборот.
      Главное какая задержка выставлена в HAL_UART_Transmit.
      Это то время, за которое должна выполняться передача данных.
      Если эта задержка меньше времени за которое могут передаться все данные, то естесственно данные не передадутся.
      Но и если выставить задержку больше чем то время за которое передаются данные, то тоже возникает какая то проблема.
      Я так и не понял точно как выставлять правильно эту задержку.

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      Hal_delay может выполняться и день? Серьёзно 😀тогда ваш мк будет день только и ждать.
      Или ваш форум говорит по другому?)

    • @namename2031
      @namename2031 2 ปีที่แล้ว

      @@NRelectronics На том форуме про HAL_Delay ничего не сказано.
      HAL_Delay может выполняться хоть один день, функция HAL_Delay ведь не влияет на HAL_UART_Transmit.
      Это два разных процесса, которые выполняются один за другим.
      Сначала выполняется HAL_UART_Transmit, затем выполняется HAL_Delay, зачем вы эти функции связываете, это два разных процесса.
      >Hal_delay может выполняться и день?
      Может и весь день.
      Сначала отработает HAL_UART_Transmit, затем Hal_delay будет весь день ждать.

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      Hal_delay влияет на hal_transmit... Вам бы разобраться как каждая работает и основные свойства, потом легче будет... А тот форум бы исключил из чтения...

  • @MultidosLab
    @MultidosLab 2 ปีที่แล้ว

    Блин :( ничего не слышно… просьба поднять шкалу звука при конвертации

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว

      Проверьте у себя звуковой тракт. Шкалу звук в уроке 14 поднять?)

    • @MultidosLab
      @MultidosLab 2 ปีที่แล้ว

      @@NRelectronics слушаю с телефона (iPhone 6s plus) в наушниках. Шкала на максимуме. Не сложно ведь при конвертации обратить внимание на уровень шкалы

    • @NRelectronics
      @NRelectronics  2 ปีที่แล้ว +1

      Спасибо за фидбэк. В следующих роликах оно поднятно. На моём Xiaomi слышно нормально.

  • @СтасСомов-н4ъ
    @СтасСомов-н4ъ 4 ปีที่แล้ว

    Один герц в секунду это как?

    • @NRelectronics
      @NRelectronics  4 ปีที่แล้ว

      Раз в секунду.

    • @Тесла-ф3в
      @Тесла-ф3в ปีที่แล้ว

      Один удар по голове в секунду

    • @NRelectronics
      @NRelectronics  ปีที่แล้ว

      Кому как)))