Mymtoud
|
|
1 | |
Программный UART02.09.2016, 23:27. Показов 8147. Ответов 6
Метки нет (Все метки)
Здравствуйте!
Из-за отсутствия второго аппаратного 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} Спасибо. |
02.09.2016, 23:27 | |
Ответы с готовыми решениями:
6
Программный UART на STM8S003 Сообщения для 2 UART выводятся в 1 UART, STM32F103C8T6 UART<->UART LPC2468 + UART |
НИПИЛН
|
|
03.09.2016, 00:31 | 2 |
После приема посылки перед разрешением прерывания на Rx флаг возникновения прерывания сбрасываете?
|
Mymtoud
|
||||||
03.09.2016, 19:03 | 3 | |||||
Сообщение от НИПИЛН
|
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
|
1 / 1 / 1
Регистрация: 06.10.2013
Сообщений: 79
|
|
25.02.2021, 15:45 | 7 |
Не очень оптимальный пример. Потому что работает по прерыванию таймера, и требует высокого быстродействия ЦПУ .
Лучше напишу свою библиотеку ...
0
|
25.02.2021, 15:45 | |
25.02.2021, 15:45 | |
Помогаю со студенческими работами здесь
7
UART в STM8L f103cbt6 UART UART IRDA STM32f051r8t6 +UART Кракозябры по UART STM32F4Discovery и UART Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |