Jump to content
Viktor Golubov

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

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

Share this post


Link to post
Share on other sites

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

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

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

Edited by mail_robot

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

Share this post


Link to post
Share on other sites
1 час назад, Viktor Golubov сказал:

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

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

Share this post


Link to post
Share on other sites

Как сделать ИП с ультрашироким диапазоном?

Ключевыми особенностями высоковольтных SiC MOSFET Wolfspeed являются малое сопротивление канала в открытом состоянии и минимальное значение паразитных емкостей, что позволяет максимально снизить статические и динамические потери, и, соответственно, увеличить рабочую частоту преобразователей.

Подробнее

человек попросил помочь, а не обращать его в свою веру


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

Share this post


Link to post
Share on other sites

Вебинар «Практика разработки IoT-устройств с BlueNRG-LP – волшебной палочкой разработчика» (23/03/2021)

Приглашаем 23 февраля на бесплатный практический вебинар по BlueNRG-LP - новой SoC STMicroelectronics. Будут рассмотрены новые возможности создания прототипов IoT-устройств на BlueNRG-LP с использованием экосистемы и отладочных средств ST, а также практические примеры по использованию BlueNRG-GUI v.4.0.0, настройке и работе в сети BLE-MESH, пример управления умным домом с помощью BlueNRG-LP и другие.

Подробнее

Пока у человека не будет понимания работы МК - вся помощь бессмысленна. А с гамном в виде HAl и SPL ее никогда не будет.

Share this post


Link to post
Share on other sites

Материалы вебинара Практическое использование TrustZone в STM32L5

Материалы вебинара, посвященного экосистеме безопасности и возможностях, которые дает новая технология TrustZone в МК STM32L5, содержат две подробные практические работы: создание простого приложения с изоляцией в TrustZone, и пример отладки и тестирования TFM-SBSFU. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

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


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

Share this post


Link to post
Share on other sites
10.02.2020 в 12:19, mail_robot сказал:

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

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

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

Share this post


Link to post
Share on other sites
10.02.2020 в 12:44, BARS_ сказал:

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

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

Share this post


Link to post
Share on other sites

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


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

Share this post


Link to post
Share on other sites
1 час назад, Viktor Golubov сказал:

тогда работать через регистры CMSIS?

Именно. Читаешь даташит и пишешь код. Все просто.

Share this post


Link to post
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...

  • Сообщения

    • К первому контроллеру описание смотрите. Если греется, поставьте на радиатор.
    • @bavbav радиатор такого кулера должен быть открыт со всех сторон, иначе от него никакого толку не будет.
    • Ну заметьте, те что имеют внешний блок питания, имеют меньший нагрев, да и поставить радиатор на проц и все что греется не трудно. Последний( второй) посмотрел, ему 4 года уже, иногда перестает показывать уровень громкости на экране, выключаю приставку с пульта и включаю, всё.  Был раньше с БП на плате, нагрев ужасен, емкости сохли, я же не выключал также , может этот боится и решил работать долго и успешно  А отключение и включение наверное можно взять 5 вольт от юсб самого телевизора, у меня подсветка так включается ,так как телевизор был в другом городе, всё в корпусе блока питания  ленты сделано и шнур юсб.зачем много писать, делать ? Можно конечно и выключать, но мне так проще, утром подошел и на кнопку нажал телека, и уже работает, пультом телевизора не пользуюсь много лет Наверное ленивый
    • И в чем же именно я не прав? Разве в приведенной мною схеме из даташита присутствует оптронная стабилизация? А ведь вопрос был именно об этом.
    • На ЭТО только помехи можно поймать. Не менее 40 метров длиной.
    • Думаю, тут не всё так просто. Если брать общепринятое мнение в учёт, что сопротивление перехода симистора составляет 70Ом, то при сопротивлении R6 принятому, например, 33Ома получаем: 28/(150 + (70*33/(70 + 33))=0,162 мА- общий ток в цепи после динистора. Тогда умножив его на эквивалентное сопротивление перехода симистора и резистора 33Ом,- получим 22,4*0,162=3,6в. Видимо автор на ютюбе так и прикинул, но тогда стабилитроны параллельно R6 должны быть на 3,6в. Если бы не одно, но! 3,6/70=51мА. Ток управления- правильный для положим ВТА24-600В, но при этом токе в даташите указано напряжение на управляющем переходе в 1,3в! А у нас- 3,6в! Это первая непонятка, наталкивающая меня на мысль,-  что делитель на резисторах тут лишний! Дальше- пуще! Ток управления у всех симисторов разный- тот же ВТА24-600СW уже требует 35мА для управления. И это может для марок симисторов разниться от 10мА и т. д. Поэтому для каждой марки симистора нужно знать сопротивление управляющего перехода и ток и уже по этим данным считать делитель. И напряжение в средней точке делителя- то есть на переходе управляющем симистора будет уже не 3,6в, а совсем другое,- например 2,4в! Где набраться стабилитронов под каждый случай? Так что стабилитроны на Вашей схеме- чей-то частный случай и не помогут всем! Я перемерял на пробой партию из 6 штук динисторов DB3- все они открылись при 28в! А это может служить опорой для точного установления нужного тока через управляющий электрод симистора. То есть 28/560=50мА, 28/800=35мА и так далее. Не забудьте что 560 и 800Ом должны включать уже в себя и сопротивление управляющего перехода симистора! И тогда на переходе управления будет 1,3в, а не 3,6в или ещё что-нибудь!        
  • Similar Content

    • 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 А и выше) наверное сможет помочь использование дополнительного суперконденсатора (ионистора) с низким внутренним сопротивлением подключенного параллельно батарейке. Этот суперконденсатор в момент импульса тока возьмёт на себя основную нагрузку и поможет разгрузить батарейку, увеличив ее срок службы.
       
    • By IgnatiusF
      Появилась надобность в микроконтрллере STM32 для проектирования устройства. И вопрос вот в чем - в программировании этих стм-ов. Прочитал несколько статей по их программированию - что вообще для этого нужно. Выяснил, что в них (во всех?) есть вшитый bootloader, который может сам прошить МК.
      То есть для этого необходимо подключить какой-либо ...to UART преобразователь, а именно TX, RX, VCC и gnd к соответсвующим ногам микроконтроллера и все? Или надо еще куда-то подавать управляющий сигнал?
      Еще вопрос по поводу бутлоадера - если он занимает 8 КБ (или по разному?), то МК с 16 КБ памяти, по сути, будет иметь 8 КБ для программ?
      Datasheet я только начинаю читать и пока еще не нашел точной информации, так что за помощь буду очень признателен
    • Guest Proton
      By Guest Proton
      Здравствуйте.
      Имеется сигнальный трансформатор 1:1, которому нужно работать на пару сотнях кГц. Одна его обмотка идёт на линию, вторая служит для приёма и передачи сигнала, например с UART. Но как это реализовать? Выходной каскад, скорее всего, на биполярном транзисторе, входной - на ОУ, но имею малые представления о совмещении этого воедино.
      Прошу объяснить и направить на необходимую литературу.
      Спасибо.
×
×
  • Create New...