Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/39: Рейтинг темы: голосов - 39, средняя оценка - 4.85
Mymtoud
1

Программный UART

02.09.2016, 23:27. Показов 8147. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Из-за отсутствия второго аппаратного UARTa мне нужно реализовать его программным образом.
Настроил ножку приема информации ("Rx") как вход + прерывание по спадающему фронту, в котором запускаю таймер и отключаю это прерывание. Таймер работает на частоте 9600 и у него настроено прерывание на половину периода, в котором я читаю состояние ноги "Rx" 10 раз ( 1 старт, 8 данные, 1 стоп ). По окончании приема ( после 10го прерывания ) я отключаю таймер и разрешаю прерывание на "Rx".

Прием первого байта работает корректно, а все последующие принимаются со смещением в один бит ( как 2 старт бита )

https://snag.gy/8uj27g.jpg- отправил 0x01, принял корректно.
https://snag.gy/jSkibn.jpg - отправил 0x01 снова - считал 2 старт бита?. Стоп бит запишется в 11ю...
И так со всеми последующими данными. Костыль городить не хочу. Помогите разобраться

{del}


Спасибо.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2016, 23:27
Ответы с готовыми решениями:

Программный UART на STM8S003
Доброго времени суток. Требуется сделать программную реализацию UART для МК STM8S003F3, т.к....

Сообщения для 2 UART выводятся в 1 UART, STM32F103C8T6
Почему может неправильно работать uart? Подключил 1 uart к пк через usb/uart переходник, а второй к...

UART<->UART
Всем доброго времени суток! Есть два модуля - Ble-модуль на STM32WB55 и центральный модуль на...

LPC2468 + UART
Недавно начал изучать ARM. На первый раз решил сделать UART. В целом что-то...

6
НИПИЛН
03.09.2016, 00:31 2
После приема посылки перед разрешением прерывания на Rx флаг возникновения прерывания сбрасываете?
Mymtoud
03.09.2016, 19:03 3
Цитата Сообщение от НИПИЛН
После приема посылки перед разрешением прерывания на Rx флаг возникновения прерывания сбрасываете?
144 Строчка кода: {del}
C
1
2
       HAL_GPIO_EXTI_IRQHomdler(GPIO_PIN_10); //???? Без этого сразу же срабатывает EXTI15_10_IRQHomdler
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); // Мы можем начинать новый прием
Mymtoud
03.09.2016, 21:32 4
Проблема скрывалась в флаге прерывания таймера. Добавил __HAL_TIM_CLEAR_IT(&htim1, TIM_IT_CC1); перед разрешением прерывания
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 79
25.02.2021, 12:47 5
День добрый! Апну тему. А можно у вас попросить код программного юарта? Ссылки уже не работают, и не охота свою библиотеку писать.
0
1976 / 1275 / 130
Регистрация: 04.01.2010
Сообщений: 4,607
25.02.2021, 15:15 6
Цитата Сообщение от Artos5 Посмотреть сообщение
Ссылки уже не работают,
Вот, например.

PS: пользуйтесь поиском по Сети, это ж как "отченаш" должно быть
0
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 79
25.02.2021, 15:45 7
Не очень оптимальный пример. Потому что работает по прерыванию таймера, и требует высокого быстродействия ЦПУ .
Лучше напишу свою библиотеку ...
0
25.02.2021, 15:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2021, 15:45
Помогаю со студенческими работами здесь

UART в STM8L
Поделитесь пожалуйста рабочим примером с UART. Не совсем понятно, как выбирать какие выводы будут...

f103cbt6 UART
Здравствуйте! Осваиваю камень f103cbt6 совместно с CoIDE. Пытаюсь использовать UART и получаю...

UART IRDA
Всем доброго дня! Возникло желание покдлючить ИК приемник(VS1838B) к stm32f103c8t6. В CubeMX при...

STM32f051r8t6 +UART
Здравствуйте, Коллеги. Не так давно начал изучение микроконтроллера STM32. У меня возникали...

Кракозябры по UART
Доброго времени суток. Необходимо передать строку через UART с контроллера в компьютер. Но приходят...

STM32F4Discovery и UART
Всем привет. Помогите разобраться, что я делаю не так. Ниже код, всё собирается, вот только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru