Тёмный

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

NR.electronics
Подписаться 18 тыс.
Просмотров 7 тыс.
50% 1

Продолжение урока по интерфейсу передачи данных USART. Приводится два примера работы на микроконтроллере STM32F103C8T6 платы "BluePill" в режимах Polling Mode и Interrupt Mode.
Вы можете помочь каналу Яндекс-деньги:
money.yandex.ru/to/4100115727...

Опубликовано:

 

14 сен 2019

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 87   
@iaroslavsisenco4072
@iaroslavsisenco4072 4 года назад
Спасибо за труд!
@NRelectronics
@NRelectronics 4 года назад
Пожалуйста
@stells47
@stells47 4 года назад
спасибо!
@NRelectronics
@NRelectronics 4 года назад
Пожалуйста)
@aleksandrkozlov9286
@aleksandrkozlov9286 4 года назад
Спасибо за ваш труд! Хотелось бы увидеть работу с USART в режиме IT в ситуации когда нам не известна длина посылки, оч часто встречается. По подробнее про режим IDLE, и реализации на круговом регистре. и да без DMA, потом уже можно будет на DMA)) Заранее спасибо!
@NRelectronics
@NRelectronics 4 года назад
Пожалуйста). Планирую показать кольцевой буфер, как раз когда неизвестен размер посылок, для IT это актуально. Использование с DMA будет сразу после теории по теме DMA.
@aleksandrkozlov9286
@aleksandrkozlov9286 4 года назад
Отлично! С нетерпением ждём
@user-ef2rr7kz4m
@user-ef2rr7kz4m 4 года назад
Доброе время суток. Спасибо за урок. Вопрос от новичка можно использовать usart на stm32 в режиме single wire для подключение датчика температуры ds18b20. Или не взлетит ?
@NRelectronics
@NRelectronics 4 года назад
Доброе. Всегда пожалуйста, обучайтесь. Взлетит на uart, будет работать.
@avr_stm_pro2955
@avr_stm_pro2955 2 года назад
Скажите в CubeIDE ,есть ограничения по коду?
@NRelectronics
@NRelectronics 2 года назад
Нет ограничения по коду.
@djeminim6912
@djeminim6912 5 месяцев назад
Не понятно какой переходник usb - uart использовать какое питание на них подавать и как подключать. Код вроде написан, а как общаться не понятно.
@NRelectronics
@NRelectronics 5 месяцев назад
Переходник любой. Питание соответствующее. Мк питается от 3,3В, уровни соответствующие. Всё понятно.
@Alexcymantrene
@Alexcymantrene Год назад
огромное спасибо за видео, но позвольте сказать свое дилетантское мнение. Мне кажется лучше использовать библиотеку LL, HAL на мой взгляд очень тяжела для освоения передачи по uart начинающим. Спасибо за ваш классный канал!
@NRelectronics
@NRelectronics Год назад
Вам спасибо за тёплые слова, не все это ценят. Хал для начала мне кажется будет легче чем CMSIS.
@Alexcymantrene
@Alexcymantrene Год назад
@@NRelectronics позвольте еще дополнить, когда вы перешли к режиму прерывания, то мне кажется лучше сказать для зрителя, что надо в конфигураторе CubeIde установить флаг глобального разрешения прерывания в модуле NVIC USART1
@NRelectronics
@NRelectronics Год назад
Если я это не сказал, то конечно нужно. Ролик давно делал, не помню.
@user-cm1zg8io9k
@user-cm1zg8io9k 4 года назад
Определенный так массив не заканчивается нулем. \0 добавляется в массивы, определенные через двойные кавычки: uint8_t data1[] = "\0\x01\x02\x03\x04\x05\x06\x07\x08\x09";
@NRelectronics
@NRelectronics 4 года назад
\0 - в начале не ставится.
@arkadikadavr2661
@arkadikadavr2661 4 года назад
Хорошее видео, но почему шёпотом?
@NRelectronics
@NRelectronics 4 года назад
Малая спала рядом)))
@Lownger
@Lownger 4 года назад
В упор не могу понять, откуда взялись функции HAL_UART_RxCpltCallback и вторая с Tx. У меня IDE их не видит
@NRelectronics
@NRelectronics 4 года назад
Написаны вручную. Хал ведь не все пишит. А раз не видит, значит не подтянуты библиотеки Хала.
@Ironziz
@Ironziz 4 года назад
Не подскажите пожалуйста, как 32 битное число перенести в массив ?
@NRelectronics
@NRelectronics 4 года назад
Нужно объявить и инициализировать массив с каким количеством элементов в массиве и запихнуть ваше 32-х разрядное число в массив, например в порядковый номер 0 в массиве, остальные элементы можно проинициализировать нулями... По хорошему видео на тему массивы нужно...
@Ironziz
@Ironziz 4 года назад
@@NRelectronics насчёт видео, хорошая идея, всё о массивах и математических операциях с большими числами с использованием массивов 😅😅😅
@Ironziz
@Ironziz 4 года назад
@@NRelectronics Я кстати использовал структуру memcpy, чтобы записать переменную в массив для передачи через UART, вроде работает, но я не знаю насколько целесообразна эта структура
@NRelectronics
@NRelectronics 4 года назад
@@Ironziz идея хорошая, но пока времени нет на это видео...
@Ironziz
@Ironziz 4 года назад
@@NRelectronics надеюсь появится))), уроки очень познавательные, продолжайте в том же духе
@user-qw6ho3kp6s
@user-qw6ho3kp6s 3 года назад
Во второй части, не указано, что в конструкторе нужно разрешить прерывания на USART. Чуть моск не вскипел :)
@NRelectronics
@NRelectronics 3 года назад
Я подробно показал где прерывания и показал на брекпоинтах работу. Нельзя полностью же полагаться на куб во всём, анализируйте пожалуйста что говориться, все понятненько по видосу.
@MultidosLab
@MultidosLab Год назад
Блин :( ничего не слышно… просьба поднять шкалу звука при конвертации
@NRelectronics
@NRelectronics Год назад
Проверьте у себя звуковой тракт. Шкалу звук в уроке 14 поднять?)
@MultidosLab
@MultidosLab Год назад
@@NRelectronics слушаю с телефона (iPhone 6s plus) в наушниках. Шкала на максимуме. Не сложно ведь при конвертации обратить внимание на уровень шкалы
@NRelectronics
@NRelectronics Год назад
Спасибо за фидбэк. В следующих роликах оно поднятно. На моём Xiaomi слышно нормально.
@namename2031
@namename2031 2 года назад
2:57 Что такое 0.5 или 1.5 бита?
@NRelectronics
@NRelectronics 2 года назад
Длительность стоп кадров.
@namename2031
@namename2031 2 года назад
@@NRelectronics 1 бит это ноль или один. Не указано же в секундах 0.5 секунд. Как может быть половина от единицы?
@NRelectronics
@NRelectronics 2 года назад
Имеется ввиду длительность этого нуля или единицы, а точнее там кажется именно единицы в пол бита или полтора, дп, это возможно.
@namename2031
@namename2031 2 года назад
@@NRelectronics Процент заполнения 50%?
@NRelectronics
@NRelectronics 2 года назад
А полтора бита 150%?)
@user-jh3fw1ih5j
@user-jh3fw1ih5j 4 года назад
Один герц в секунду это как?
@NRelectronics
@NRelectronics 4 года назад
Раз в секунду.
@user-hw8cl8we7j
@user-hw8cl8we7j Год назад
Один удар по голове в секунду
@NRelectronics
@NRelectronics Год назад
Кому как)))
@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... Вам бы разобраться как каждая работает и основные свойства, потом легче будет... А тот форум бы исключил из чтения...
Далее
💋🧠
00:38
Просмотров 61 тыс.
STM32. USART
24:45
Просмотров 6 тыс.
Уроки Ардуино. ПИД регулятор
28:57