Спасибо за ваш труд! Хотелось бы увидеть работу с USART в режиме IT в ситуации когда нам не известна длина посылки, оч часто встречается. По подробнее про режим IDLE, и реализации на круговом регистре. и да без DMA, потом уже можно будет на DMA)) Заранее спасибо!
Пожалуйста). Планирую показать кольцевой буфер, как раз когда неизвестен размер посылок, для IT это актуально. Использование с DMA будет сразу после теории по теме DMA.
Определенный так массив не заканчивается нулем. \0 добавляется в массивы, определенные через двойные кавычки: uint8_t data1[] = "\0\x01\x02\x03\x04\x05\x06\x07\x08\x09";
огромное спасибо за видео, но позвольте сказать свое дилетантское мнение. Мне кажется лучше использовать библиотеку LL, HAL на мой взгляд очень тяжела для освоения передачи по uart начинающим. Спасибо за ваш классный канал!
@@NRelectronics позвольте еще дополнить, когда вы перешли к режиму прерывания, то мне кажется лучше сказать для зрителя, что надо в конфигураторе CubeIde установить флаг глобального разрешения прерывания в модуле NVIC USART1
Доброе время суток. Спасибо за урок. Вопрос от новичка можно использовать usart на stm32 в режиме single wire для подключение датчика температуры ds18b20. Или не взлетит ?
Я подробно показал где прерывания и показал на брекпоинтах работу. Нельзя полностью же полагаться на куб во всём, анализируйте пожалуйста что говориться, все понятненько по видосу.
Нужно объявить и инициализировать массив с каким количеством элементов в массиве и запихнуть ваше 32-х разрядное число в массив, например в порядковый номер 0 в массиве, остальные элементы можно проинициализировать нулями... По хорошему видео на тему массивы нужно...
@@NRelectronics Я кстати использовал структуру memcpy, чтобы записать переменную в массив для передачи через UART, вроде работает, но я не знаю насколько целесообразна эта структура
9:30 Процессы ведь последовательно выполняются, а не одновременно. Какая разница сколько занимает каждый из этих процессов. Я нашёл другое объяснение этому: Введите в гугле I'm trying to send data by STM32f103 to an Arduino board using UART. Ютюб лютует, комменты не пропускает. Нужно рассчитывать время, за которое передаётся весь массив данных и тактовую частоту. Какое то уж больно мутрное занятие.
Если каждый процесс будет занимать кучу времени то последующие процессы просто не будут успевать выполняться или полностью отрабатывать, это оже проблема. Поэтому стараются всё сократить для рабочего минимума.
@@NRelectronics На форуме из интернета цитату из которого я привёл выше объясняется по другому. Продолжительность последующих процессов не имеет никакого значения. HAL_Delay может хоть один день продолжаться. HAL_Delay не влияет на последующую функцию HAL_UART_Transmit ну или наоборот. Главное какая задержка выставлена в HAL_UART_Transmit. Это то время, за которое должна выполняться передача данных. Если эта задержка меньше времени за которое могут передаться все данные, то естесственно данные не передадутся. Но и если выставить задержку больше чем то время за которое передаются данные, то тоже возникает какая то проблема. Я так и не понял точно как выставлять правильно эту задержку.
@@NRelectronics На том форуме про HAL_Delay ничего не сказано. HAL_Delay может выполняться хоть один день, функция HAL_Delay ведь не влияет на HAL_UART_Transmit. Это два разных процесса, которые выполняются один за другим. Сначала выполняется HAL_UART_Transmit, затем выполняется HAL_Delay, зачем вы эти функции связываете, это два разных процесса. >Hal_delay может выполняться и день? Может и весь день. Сначала отработает HAL_UART_Transmit, затем Hal_delay будет весь день ждать.
Hal_delay влияет на hal_transmit... Вам бы разобраться как каждая работает и основные свойства, потом легче будет... А тот форум бы исключил из чтения...
Спасибо за ваш труд!
Хотелось бы увидеть работу с USART в режиме IT в ситуации когда нам не известна длина посылки, оч часто встречается.
По подробнее про режим IDLE, и реализации на круговом регистре. и да без DMA, потом уже можно будет на DMA)) Заранее спасибо!
Пожалуйста). Планирую показать кольцевой буфер, как раз когда неизвестен размер посылок, для IT это актуально.
Использование с DMA будет сразу после теории по теме DMA.
Отлично! С нетерпением ждём
Не понятно какой переходник usb - uart использовать какое питание на них подавать и как подключать. Код вроде написан, а как общаться не понятно.
Переходник любой. Питание соответствующее. Мк питается от 3,3В, уровни соответствующие. Всё понятно.
Спасибо за труд!
Пожалуйста
Определенный так массив не заканчивается нулем. \0 добавляется в массивы, определенные через двойные кавычки: uint8_t data1[] = "\0\x01\x02\x03\x04\x05\x06\x07\x08\x09";
\0 - в начале не ставится.
огромное спасибо за видео, но позвольте сказать свое дилетантское мнение. Мне кажется лучше использовать библиотеку LL, HAL на мой взгляд очень тяжела для освоения передачи по uart начинающим. Спасибо за ваш классный канал!
Вам спасибо за тёплые слова, не все это ценят. Хал для начала мне кажется будет легче чем CMSIS.
@@NRelectronics позвольте еще дополнить, когда вы перешли к режиму прерывания, то мне кажется лучше сказать для зрителя, что надо в конфигураторе CubeIde установить флаг глобального разрешения прерывания в модуле NVIC USART1
Если я это не сказал, то конечно нужно. Ролик давно делал, не помню.
Доброе время суток. Спасибо за урок. Вопрос от новичка можно использовать usart на stm32 в режиме
single wire для подключение датчика температуры ds18b20. Или не взлетит ?
Доброе. Всегда пожалуйста, обучайтесь. Взлетит на uart, будет работать.
Скажите в CubeIDE ,есть ограничения по коду?
Нет ограничения по коду.
В упор не могу понять, откуда взялись функции HAL_UART_RxCpltCallback и вторая с Tx. У меня IDE их не видит
Написаны вручную. Хал ведь не все пишит. А раз не видит, значит не подтянуты библиотеки Хала.
Хорошее видео, но почему шёпотом?
Малая спала рядом)))
спасибо!
Пожалуйста)
Во второй части, не указано, что в конструкторе нужно разрешить прерывания на USART. Чуть моск не вскипел :)
Я подробно показал где прерывания и показал на брекпоинтах работу. Нельзя полностью же полагаться на куб во всём, анализируйте пожалуйста что говориться, все понятненько по видосу.
Не подскажите пожалуйста, как 32 битное число перенести в массив ?
Нужно объявить и инициализировать массив с каким количеством элементов в массиве и запихнуть ваше 32-х разрядное число в массив, например в порядковый номер 0 в массиве, остальные элементы можно проинициализировать нулями... По хорошему видео на тему массивы нужно...
@@NRelectronics насчёт видео, хорошая идея, всё о массивах и математических операциях с большими числами с использованием массивов 😅😅😅
@@NRelectronics Я кстати использовал структуру memcpy, чтобы записать переменную в массив для передачи через UART, вроде работает, но я не знаю насколько целесообразна эта структура
@@Ironziz идея хорошая, но пока времени нет на это видео...
@@NRelectronics надеюсь появится))), уроки очень познавательные, продолжайте в том же духе
2:57 Что такое 0.5 или 1.5 бита?
Длительность стоп кадров.
@@NRelectronics 1 бит это ноль или один.
Не указано же в секундах 0.5 секунд.
Как может быть половина от единицы?
Имеется ввиду длительность этого нуля или единицы, а точнее там кажется именно единицы в пол бита или полтора, дп, это возможно.
@@NRelectronics Процент заполнения 50%?
А полтора бита 150%?)
9:30 Процессы ведь последовательно выполняются, а не одновременно.
Какая разница сколько занимает каждый из этих процессов.
Я нашёл другое объяснение этому:
Введите в гугле
I'm trying to send data by STM32f103 to an Arduino board using UART.
Ютюб лютует, комменты не пропускает.
Нужно рассчитывать время, за которое передаётся весь массив данных и тактовую частоту.
Какое то уж больно мутрное занятие.
Если каждый процесс будет занимать кучу времени то последующие процессы просто не будут успевать выполняться или полностью отрабатывать, это оже проблема. Поэтому стараются всё сократить для рабочего минимума.
@@NRelectronics На форуме из интернета цитату из которого я привёл выше объясняется по другому.
Продолжительность последующих процессов не имеет никакого значения.
HAL_Delay может хоть один день продолжаться. HAL_Delay не влияет на последующую функцию HAL_UART_Transmit ну или наоборот.
Главное какая задержка выставлена в HAL_UART_Transmit.
Это то время, за которое должна выполняться передача данных.
Если эта задержка меньше времени за которое могут передаться все данные, то естесственно данные не передадутся.
Но и если выставить задержку больше чем то время за которое передаются данные, то тоже возникает какая то проблема.
Я так и не понял точно как выставлять правильно эту задержку.
Hal_delay может выполняться и день? Серьёзно 😀тогда ваш мк будет день только и ждать.
Или ваш форум говорит по другому?)
@@NRelectronics На том форуме про HAL_Delay ничего не сказано.
HAL_Delay может выполняться хоть один день, функция HAL_Delay ведь не влияет на HAL_UART_Transmit.
Это два разных процесса, которые выполняются один за другим.
Сначала выполняется HAL_UART_Transmit, затем выполняется HAL_Delay, зачем вы эти функции связываете, это два разных процесса.
>Hal_delay может выполняться и день?
Может и весь день.
Сначала отработает HAL_UART_Transmit, затем Hal_delay будет весь день ждать.
Hal_delay влияет на hal_transmit... Вам бы разобраться как каждая работает и основные свойства, потом легче будет... А тот форум бы исключил из чтения...
Блин :( ничего не слышно… просьба поднять шкалу звука при конвертации
Проверьте у себя звуковой тракт. Шкалу звук в уроке 14 поднять?)
@@NRelectronics слушаю с телефона (iPhone 6s plus) в наушниках. Шкала на максимуме. Не сложно ведь при конвертации обратить внимание на уровень шкалы
Спасибо за фидбэк. В следующих роликах оно поднятно. На моём Xiaomi слышно нормально.
Один герц в секунду это как?
Раз в секунду.
Один удар по голове в секунду
Кому как)))