При этом если я перенастрою все так чтобы работало все по USART2 то все отрабатывает . Что отправляю в терминале то и получаю.
Но вот в таком виде, когда данные должны приходить на USART1 и уходить в USART2 ничего не происходит. Согласно отладчика в Callback даже не прилетаем.
Технически это прием по USART1 данных от GPS приемника и передача их в USART2 на виртуальный комп порт в терминал на ПК.
Один раз, когда я "прозванивал" сигнал анализатором то волшебным образом данные в терминале я начал видеть, однако потом когда перезапустил МК то все пропало. Анализатором снимал данные непосредственно с припаянного в плату nucleo пина и сигнал там есть.
Подскажите пожалуйста в чем может быть проблема?
Добавлено after 22 minutes 19 seconds: При этом во время работы программы str не пустаяСпойлер
Код:
Name : str Details:"b", '\0' <repeats 1022 times>
но значение не меняется, сколько бы я не прокручивал программу в отладчике
Какаято ерунда происходит. Когда проверял просто передачу через прерывания (HAL_UART_Receive_IT(&huart1, str, 10);). То поймал момент, когда я разъединял линию и мне в терминал приходили 00 . Причем когда я брался(линия разорвана была) просто за провода (у меня макетные провода для ардуино) одной рукой за один провод, другой за другой то передача прерывалась. Потом соединил линию и увидел что сообщения пошли, переписал все на HAL_UARTEx_ReceiveToIdle_IT, не заработало. Снова переписал на HAL_UART_Receive_IT и все линия молчит, нулей тоже нет. Как бы я не трогал руками схему
Сам подумай: как из линии, притянутой к "1", могут приходить "нули"? Неужели у тебя ничё не ёкает на "0" из UART?
К сожалению это полностью первый мой опыт работы с МК и да я, пока этого не понимаю ( Приходили коды ASCII 00 КЗ на линиях нет, при прозвонке мультиметром напряжение на TX линии от 3.3В до 1.2В Если отсоединить GPS и померить напряжение на пине входа МК, то судя по всему там нет никакой подтяжки никуда. Как и написано в кубе в характеристиках этой ножкиСпойлер
Добавлено after 25 minutes 13 seconds: Нашел где в кубе можно поменять режим ножки PB7 на Pull-Up . Теперь данные в терминале на ПК я вижу, только если сделаю так: Отсоединяю линию TX GPS приемника - подаю питание на стм - соединяю линию TX GPS приемника с МК и данные начинают поступать. Если загрузится с подключенной линией, то не работает ... Изза чего это может быть?
А вы можете пояснить что не так? Я впринципе понимаю, что мультиметром я ничего не увижу. Это я так максимально подробно писал, то что я имею сейчас в надежде подучить какой-то прямой совет или помощь в решение моей ситуации
Настрой сначала первый UART на передачу. Проверь, летят ли байты. Когда убедишься, что летят, то только после этого настраивай второй на прием. Также попробуй добавить вот это.
Настрой сначала первый UART на передачу. Проверь, летят ли байты. Когда убедишься, что летят, то только после этого настраивай второй на прием. Также попробуй добавить вот это.
Вы имеете ввиду проверить исправность UART1, при помощи например USB-UART конвертера?
А может быть проблема в какой-то коммутации или порядке вызова инициализаций? Получил сегодня второй приемник GPS он ведет себя один в один так же. Т.е. если загрузится без модуля и потом его подключить то все работает отлично. А если с подключенным то нифига
Имею в виду, что подключать после настройки и проверки периферии надо. Как понял один UART на отправку. Второй на прием. Настраиваешь сначала первый на отправку. Пишешь какую-нибудь функцию тип void SendData(uint8_t data). и в бесконечном цикле отправляешь байт, к примеру 0xAA . Анализатором или осциллографом проверяешь работает или нет. Далее настраиваешь второй USART на прием. Выдаешь какие-нибудь данные. Можешь даже с USARTA который на передачу настроен и проверяешь пришли данные или нет. После этого уже подключаешь железяку. У меня где-то на компе валялся код инициализации USARTA на прием и на передачу. Завтра скину, если не забуду. Если правильно понял, то с ним именно проблема
Cheeseman, Спасибо с советом о перепроверке вы мне помогли. Я открыл чистый проект в кубе, и у меня все заработало. В итоге вооружившись двойными слешами нашел, что у меня какаято проблема в инициализации дисплея. Но при этом если включить прием UART перед инициализацией дисплея то все работает. Спасибо!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения