Jump to content

Сообщения для 2 UART выводятся в 1 UART, STM32F103C8T6


Viktor Golubov
 Share

Recommended Posts

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

и выводятся как то странно

не полностью

Вот такой вывод постоянно:

Begin
End
AT+CNMI=2,2,0,0,0
AT+CMGEnd
AT+CNMI=2,2,0,0,0

а должно быть просто

begin

end

и все

полный код https://pastebin.com/zBBZmZue

Link to comment
Share on other sites

задебаж. Скорее всего какой то из твоих посылок не хватает времени на отправку. Тыж не проверяешь на завершение отправки, а тупо стопишь код,

IF (HAL_UART_Transmit(&huart2, "Begin\n\r", 40, 200) != HAL_OK) UART_ErrorHandler(1);

в обработчик передай номер вызова по порядку вместо единички и увидишь сразу где ошибка. Ессно в обработчике сделай бесконечный цикл и поставь на нем брэкпоинт

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Link to comment
Share on other sites

1 час назад, Viktor Golubov сказал:

Суть в том, что сообщения для 2 уарта выводятся в 1 уарт

Это все по тому, что нет ни малейшего понимания работы МК. Выкинь нафиг все HAL либы из проекта, открой даташит и напиши человеческий код. Тогда и работать будет, как надо. Тем более, что настройка UART проще паренной репы. В STM32, в принципе, очень мало сложной периферии. Большая часть сделана очень просто и логично.

Link to comment
Share on other sites

Вебинар «Новые тенденции сетевых технологий: Ethernet по одной витой паре» (09.12.2021)

Приглашаем 9 декабря всех желающих посетить вебинар, посвященный технологии Ethernet и её новому стандарту 10BASE-T1S/L. Стандарт 802.3cg описывает передачу данных на скорости до 10 Мбит в секунду по одной витой паре. На вебинаре будут рассмотрены и другие новшества, которые недавно вошли в семейство технологий Ethernet: SyncE, PTP, TSN. Не останется в стороне и высокоскоростной 25G+ Ethernet от Microchip.

Подробнее

DC/DC-преобразователи Mornsun со склада Компэл

В сложный период для рынка электронных компонентов, когда производители увеличивают сроки поставки продукции, со склада Компэл можно приобрести широкий ассортимент DC/DC-преобразователей производства компании Mornsun. На складе представлены наиболее популярные семейства изолированных и неизолированных DC/DC-преобразователей новых поколений R3 и R4, а также предыдущего, но по-прежнему востребованного поколения R2.

Подробнее

Новые компоненты STMicroelectronics для учета электроэнергии

Внедрение автоматизированных систем контроля и учета всех видов энергоресурсов, невозможно без инструментов, позволяющих помимо измерения параметров, преобразовывать их для обработки цифровыми интеллектуальными системами. Микросхемы STPM32, STPM33 и STPM34 STMicroelectronics являются наиболее точными и высокопроизводительными представителями своего семейства и способны максимально точно измерять параметры электросети в системах электроснабжения переменного тока, а также осуществлять их первичную обработку. Рассмотрим подробнее их преимущества и средства разработки.

Подробнее

ну тебе то от этого что будет? Хочет товарищ - пусть грызет кокос хоть жопой

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Link to comment
Share on other sites

Карбид кремния позволяет повысить КПД и удельную мощность ИБП с двойным преобразованием

Построение источников бесперебойного питания с двойным преобразованием, широко используемых в современных хранилищах данных, на базе карбид-кремниевых MOSFETs производства Wolfspeed позволяет уменьшить мощность потерь в них до 40%, а также значительно снизить занимаемый ими объем и стоимость комплектующих.

Подробнее

10.02.2020 в 12:19, mail_robot сказал:

в обработчик передай номер вызова по порядку вместо единички и увидишь сразу где ошибка. Ессно в обработчике сделай бесконечный цикл и поставь на нем брэкпоинт

Написал обработчик, а потом физически отключил уарт, но ошибку стм все равно не видит

Код: https://pastebin.com/fuxj68VS

Link to comment
Share on other sites

10.02.2020 в 12:44, BARS_ сказал:

Это все по тому, что нет ни малейшего понимания работы МК. Выкинь нафиг все HAL либы из проекта, открой даташит и напиши человеческий код. Тогда и работать будет, как надо. Тем более, что настройка UART проще паренной репы. В STM32, в принципе, очень мало сложной периферии. Большая часть сделана очень просто и логично.

А если не через HAL, то это тогда работать через регистры CMSIS?

Link to comment
Share on other sites

ну значит дело не в таймаутах. Увеличь паузы между передачами до секунды. Делай что нибудь, ищи ошибку, за тебя это никто делать не будет. А то мож ты там и с проводами напартачил, а мы тут гадать будем

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Link to comment
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Сообщения

    • Да, в школьном курсе физики этого действительно нет. 220 В - это действующее значение переменного сетевого напряжения. После диодного моста (выпрямителя) на конденсаторе достаточно большой ёмкости и при достаточно малом токе, постоянное напряжение имеет малые пульсации и практически равно амплитудному значению синусоидального переменного, которое равно 220 * 1,41 = 310 В. Что такое действующее и амплитудное значения синусоидального переменного напряжения, - про это в школьном курсе физики есть.
    • Всем привет! Ребят, подскажите, пожалуйста, что это за синий элемент? На нем написано. +1 +35V Он не выглядит сгоревшим?
    • Один вопрос, откуда там 310 В. У человека в розетке 220, фаза и ноль.
    • Guest sanektmb81
      Всем здраствуйте, помогите "чайнику". Есть локомотив roco, питание 12в через рельсы, нужно ему урезать скорость примерно на треть, не уменьшая напряжение на рельсах, в схеме по-моему уже стоят резисторы ( если я правильно понял) . Подскажите можно добавить или заменить имеющиеся, и помогите расчитать номинал. Фото платы. Заранее спасибо.
    • Известный фильм, с Золотухиным... Хотя чего там, кого жалеть? Фильм "При Загадочных Обстоятельствах", 2009 год. Задремал, на титрах проснулся, - а там такая хрень... Куда катится образование... ?! Всем всё пофиг...
    • Ну да. Улыбка у пиндосов это отдельная веселая кстати темка-точно. Она ни о чем,как и пиндосы. И подпиндосники

  • Лабораторный БП Fnirsi DC-6006L. Выход 0-60В, 0-6А.

  • Similar Content

    • By Main_18
      Доброго времени суток всем. Выручайте, у меня уже едет крыша. Не могу прочитать uart 1 на pic18f25k22 работает только отправка данных. uart 2 работает нормально и на отправку данных и на чтение.
      Инициализация обычная
      void USART_Init(long baud_rate) { TRISCbits.TRISC6 = 1; TRISCbits.TRISC7 = 0; float temp; temp=(( (float) (F_CPU) / (float) baud_rate) - 1); SP1BRG = (int) temp; /* Baud rate=9600 SPBRG=(F_CPU /(64*9600))-1*/ TX1STA = 0x20; /* TX enable; */ RC1STA = 0xB0; /* RX enable and serial port enable*/ } RC1REG всегда 0x00 если пытаюсь читать посылку. отправка работает нормально, если положить байт в TX1REG все отправляется.
      беру usart 2 на этом же чипе
      void USART_Init(long baud_rate) { TRISBbits.TRISB7 = 1; TRISBbits.TRISB6 = 0; float temp; temp=(( (float) (F_CPU) / (float) baud_rate) - 1); SP2BRG = (int) temp; /* Baud rate=9600 SPBRG=(F_CPU /(64*9600))-1*/ TX2STA = 0x20; /* TX enable; */ RC2STA = 0xB0; /* RX enable and serial port enable*/ } все прекрасно работает и на чтение и на запись. Мистика. Пробовал через прерывания и без них, usart 2 работает без нареканий, usart 1 только на передачу. 
      соединил два 18F2550 по уарту, все прекрасно один пишет, второй читает. Что не так с 18F25K22 кто подскажет?
    • Guest Константин
      By Guest Константин
      Здравствуйте, совсем недавно начать освоение микроконтроллеров и в начале пути столкнулся с двумя проблемами:  
      1) При нажатии кнопки "Run" для запуска проекта выдает ошибку: No ST-LINK detected! Please conncect ST-LINK and restart the debug sesion. При этом ST_Link установлен, создаю bin-файлы и зашиваю через него.
      2) есть плата STM32discovery и преобразователь интерфейса uart-usb|com, нужно передать сообщение по данному интерфейсу, но терминальные программы  (putty, smarty, realterm) не принимают ничего хотя видят данный порт. Ошибок в коде нет, светодиод мигает.
       


    • Guest NickL
      By Guest NickL
      Всем привет.
      Имеется датчик давления под управлением микрухи MLX90308. Микруха сия собирает показания с 4-х включенных мостом тензометрических датчиков, и отдает обработанное значение в виде аналогового сигнала. Так же есть пин для получения данных в цифре и калибровки/прошивки этой микрухи. Производитель микрухи предлагает бесплатный софт и свою отладочно-прошивочную плату (EVB90308) за 250 бакинских (дорого), которую ждать 8 недель (долго)
      Судя по докам, там обычный UART, но с другими уровнями. Логический 0 = 0.3*Uвх, т.е. 1.5в, Логическая 1 = 0.7*Uвх, т.е. 3,5в. И всё это засунуто в единственный пин и на прием и на передачу.
      Универ был давно, да и учился я плохо, подскажите пожалуйста пример схемы чтобы 1) свести tx и rx на одну ногу 2)согласовать уровни для чтения/записи сей микрухи доступными средствами. Например, FTDI.
      Даташит микрухи:
      https://www.melexis.com/-/media/files/documents/datasheets/mlx90308-datasheet-melexis.pdf
      Спасибо заранее! Это датчик из блока АБС мотоцикла, замены нет, б/у запчастей нет, а новый блок стоит как сам мотоцикл.
    • By Дмитрий -
      На примере GSM/GPRS Goouuu Tech IOT-GA6-B и ATtiny85.
      Программа «Звонилка». 
      Программа на BASCOM-AVR. 
      Источник https://178654.blogspot.com/p/uart.html
       

    • By Highlander7
      Хотелось бы поделиться некоторыми результатами теста модуля GSM с литий-диоксидмарганцевыми батарейками. Может кому-то это будет интересно.
      Иногда  мне приходится работать с различными GSM модулями. И вот в очередной раз, потребовалось выяснить в реальном эксперименте насколько долго может проработать GSM модуль M66FA-04-STD (Quectel) с указанным типом батареек. В результате эксперимента нужно было контролировать количество отправленных СМС-сообщений. В качестве батареек взял CR17505E fanso, которые были под рукой на тот момент. Посмотрел, что необходимые  параметры они обеспечивают. Выбранные батарейки соединил последовательно. На тестовой плате установил понижающий DC-DC преобразователь TPS62130 (TI) настроенный на 3,7 В выходного напряжения, а вся схема управлялась микроконтроллером  ATXMEGA16E5 (Atmel - Microchip). 
       

       
      В итоге: 10 сентября был запущен тест батареек в качестве источника питания для платы с GSM модулем.
      Сущность теста – микроконтроллер один раз в час включает GSM модуль и отправляет СМС с некоторым набором данных.
      После отправки СМС модуль выключается, а микроконтроллер на 1 час уходит в режим сна, ток потребления от батареек 65 мкА.
      До 21 сентября тестируемый комплект находился в комфортных условиях – хороший уровень сигнала сети GSM и комнатные температуры воздуха.
      СМС-ки нормально отправлялись и приходили каждый час. Было отправлено порядка 240 СМС-сообщений.
      21 сентября тестируемый комплект отвез за город и разместил в помещении с низким уровнем сигнала сети GSM и с уличной температурой воздуха. Температура воздуха ночью снижалась до 0 градусов, днем была +10 … +15.
      Проработав в таких условиях около двух суток, и, отправив порядка 50 СМС-сообщений, GSM модуль стал самостоятельно выключаться при регистрации в сети. Большой ток потребления (до 2 А) и выросшее из-за низких температур внутреннее сопротивление батареек приводили к провалу напряжения ниже допустимого уровня.
      24 сентября тестируемый комплект был выключен.
      30 сентября тестируемый комплект был снова включен, и он продолжил нормально работать (комнатные температуры и хороший уровень сигнала GSM).
      02 октября тестируемый комплект был размещен на застекленном балконе (температуры ночью ниже, чем в квартире).
      И вот до 09.10. модуль работает нормально, и пока сбоев в работе не было – СМС-ки исправно приходят каждый час.  
      09.10. эксперимент был остановлен в ожидании отрицательных температур, т.к. на улице было тепло.
      Теперь при наступлении ночью отрицательных температур эксперимент планирую продолжить.
      Пока было получено порядка 530 СМС-сообщений.
      В даташите на батарейку CR17505E fanso есть график зависимости напряжения батарейки от потребляемого тока при различных температурах.
      Для нуля градусов кривая доходит до тока 1 Ампер.
      Так как у меня 2 батарейки и хороший DC-DC (TPS62130), то нужный в худших условиях приема  GSM модулю M66 ток 1.6 А они могут обеспечить.
      Вообще-то, результат такого теста зависит от большого числа факторов:
      - качества антенны;
      - качества согласования антенны с сотовым модулем;
      - качества разводки печатной платы;
      - кпд понижающего DC-DC преобразователя;
      - величины ёмкостей конденсаторов на входе и выходе DC-DC преобразователя;
      - длительности сна (1 раз в час или 1 раз в сутки);
      Для -20 градусов кривая на графике доходит до тока только 0.4 Ампера. Можно сказать, что эти  батарейки оптимально использовать с GSM модулями до 0 градусов, или до -3 … -5 градусов.
      В моем эксперименте модуль GSM начал выключаться при близких к 0 температурах, но надо учесть, что батарейки уже проработали почти две недели. Если бы они были свежими, то, может быть, он бы не стал выключаться через два дня после «вывоза на природу».
      По питанию, для этого типа батареек наблюдается зависимость выходного напряжения в области отрицательных температур при больших значениях потребляемого тока. Думаю для более эффективного использования этих батареек на таких значениях тока (порядка 2 А и выше) наверное сможет помочь использование дополнительного суперконденсатора (ионистора) с низким внутренним сопротивлением подключенного параллельно батарейке. Этот суперконденсатор в момент импульса тока возьмёт на себя основную нагрузку и поможет разгрузить батарейку, увеличив ее срок службы.
       
×
×
  • Create New...