|
mostirps
|
||||||||||||||||
STM32 USART-RS485 передача пакета данных17.11.2011, 02:34. Показов 17242. Ответов 7
Метки нет (Все метки)
Приветствую всех!
Подскажите пожалуйста по следующему вопросу: Передаю байт ПК -> STM32, по схеме ПК->USB/RS485 - драйвер RS485/проц. Отсылаю обратно, все отлично. Хочу передать два и более байт, не выходит ничего, получаю в результате либо один непонятный байт, либо ничего вообще. Терминалка COM Port Toolkit. Привожу код: Основной цикл:
Заранее благодарен за любую помощь!!! ЗЫ прием более одного байта сопровождается выставлением флага ORE в статус-регистре юсарта, что уже дожно повлечь за собой очередное прерывание, но я не наблюдаю его. Где накосячил? |
||||||||||||||||
| 17.11.2011, 02:34 | |
|
Ответы с готовыми решениями:
7
Передача цифр по USART stm32 передача данных с 2 портов can и 1 usart в usart Прием по USART пакета данных |
|
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 1,890
|
|
| 18.11.2011, 13:11 | |
|
А почему ты передачу/прием не переключаешь сразу в обработке прерывания? И запись/чтение USORT1->DR там же сделать.
Кстати, почитай еще errata на свой контроллер. Я когда писал терминалку в контроллер(вот эту обработку использовал http://habrahabr.ru/btogs/controllers/127890/), сделал прием байта в контроллер по прерыванию, а передачу по флагам. Т.е. если байт пришёл в контроллер - прерывание, а если контроллеру надо передать - просто записал байт в DR, подождал Transfer Complete и всё.
0
|
|
|
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 1,057
|
|
| 18.11.2011, 15:27 | |
|
Когда-то воевал с МАХ485 на Атмегах, так ножку "прием-передача" надо было придерживать еще на время передачи 2 символов, иначе последний байт не проходил. Попробуй с ручным переключением "прием-передача".
0
|
|
|
mostirps
|
||||||
| 23.11.2011, 19:25 | ||||||
|
Упростил код, выкинув все из главного цикла, теперь прерывание выглядит так:
Результат все тот же: передаю байт с ПК, получаю его обратно, передаю два и более получаю 1 байт чепухи либо ничего вообще. Один нюанс, для организации RS-485 применил мост USB-RS485 на силабовском CP2103. Драйвер стоит там с питанем от +5В. На плате с микроконтроллером соит драйвер на +3,3В ST3485EX. Терминальные резисторы с обеих сторон 150 Ом Подтяжки на драйвере ST3485EX по 360 Ом, на 5-ти волтовом драйвере ST485 подтяжки по 560 Ом Смещение получилось 0,55В Осцилом видно, что МК принимает данные и передает обратно. На моем С1-83 можно разглядеть, что сигналы одинаковые, что на прием, что на передачу. А вот драйвер на мосте уже данные не хавает. Переключатель прием/передача не дергается, на приемной ноге тишина... |
||||||
|
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 1,890
|
|
| 23.11.2011, 23:15 | |
|
Если осциллографом всё правильно, значит либо мост косячит, либо программа на компе.
0
|
|
|
mostirps
|
|
| 23.11.2011, 23:32 | |
|
Буквально полгода назад гонял на этом мосту MODBUS rtu. Проц был Miko128. Терминалка COM Port Toolkit.
Может быть проблема из-за того, что сейчас со стороны МК драйвер питается от +3,3В? З.Ы. MODBUS юзал на скорости 115200, никаких тормозов и глюков... |
|
|
0 / 0 / 0
Регистрация: 21.04.2010
Сообщений: 1,890
|
|
| 23.11.2011, 23:49 | |
|
Я так и не понял что ты написал про подтяжки у драйверов...
Если ты про шину 485 - так там уровень питания микросхемы не важен, там дифференциальный сигнал.
0
|
|
|
mostirps
|
|
| 23.11.2011, 23:59 | |
|
я писал про подтяжки, отвечающие за смещение
|
|
| 23.11.2011, 23:59 | |
|
Помогаю со студенческими работами здесь
8
USART RS485 STM32F4DISCOVERY: не работает связка RS485 + USART
Передача данных с АЦП по USART Прием команд с компьютера. Разбор пакета данных с USART Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|