Перейти к содержанию

Поиск сообщества

Показаны результаты для тегов 'STM32'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Автомобильная электроника
    • Питание
    • Ремонт
    • Системы охраны и наблюдения. Личная безопасность
    • Роботы и модели на ДУ-управлении
    • Световые эффекты и LED
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Металлоискатели
    • Автоматика
    • Электрика
    • Промышленная электроника
    • Измерительная техника
    • Мастерская радиолюбителя
    • КВ и УКВ радиосвязь
    • Радиопередатчики
    • Сотовая связь
    • Спутниковое ТВ
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Схемотехника для профессионалов
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • Arduino, ESP32, ESP8266, Raspberry Pi
    • AVR
    • STM32
    • PIC
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Курилка
    • Сайт Паяльник и форум
    • FAQ (Архив)
    • Технический английский (English)
    • Личные блоги
    • Наши проекты для Android и Web
    • Корзина
    • Конкурсы сайта с призами
    • Вопросы с VK
  • Переделки ATX->ЛБП
  • Переделки разные темы
  • Киловольты юмора Юмор в youtube

Блоги

  • Твори, выдумывай, пробуй.
  • fant's блог
  • Ток покоя
  • Где купить велпатасвир, epclusa, velpanat, velasof, софосбувир в России по лучшей цене.
  • Китайские бренды видеокамер
  • Создание Маленькой Мастерской
  • Блог администрации
  • STEN50's блог
  • Изучение, наладка, исследование
  • MiSol62's блог
  • короткие записки по ходу дела
  • Программирование AVR и PIC блог
  • Стабилизированный выпрямитель тока ТЕС 12-3-НТ
  • Блог getshket
  • ТНПА
  • welder's блог
  • blog cheloveka loshadi
  • OPeX3's блог
  • Подводная робототехника
  • Сабвуфер и акустика.
  • Радиоуправляемая машина
  • Консультация психолога сексолога онлайн, психолог онлайн
  • Nokian блог
  • Оповещения Dermabellix Scam !! Не покупайте это !!!
  • Cheerful Boss' блог
  • Cheerful Boss' блог
  • VLAD1996B's блог
  • "Коллективное увеличение продаж"
  • Dudok's блог
  • "Коллективное увеличение продаж"
  • Goluboglazyi's блог
  • Прибор определяющий электролитический конденсатор на работоспособность.
  • Mosfet@'s блог
  • mazzi's блог
  • Лучшие компьютерные игры 2017
  • Marchenkokerya's блог
  • Заметки начинаущего аудиофила
  • Почти бесполезные проги
  • Светлый блог.
  • дядюшка Филин's блог
  • Дневники нуба
  • satyrn's блог
  • Люк. В погреб.
  • Фильм Дом Солнца
  • Светодиодная лента B-LED 2835-120 W белая негерметичная
  • Само-Реплицируещиеся Производственные Системы
  • Блог от Eknous
  • РВС's блог
  • Den_R's blog
  • РВС's блог
  • Чтото крутое и про криворукость
  • ekadom's блог
  • Проектирование любых чертежей
  • Lisovic's блог
  • Блог уже не юного радиогубителя
  • денди
  • eHouse
  • zaregan's блог
  • Схемотехника УНЧ с низковольтным питанием на примере приёмников фирмы Grundig
  • То, что в руки попало.
  • Блок питания водородного генератора и все что с ним связано
  • slava_va@mail.ru's блог
  • Блог alex123al97
  • slava_va@mail.ru's блог
  • параленое соединение КРЕНок или как сделать стабилизатор напряжения 24-12в
  • Свободная генерация Андрея Мельниченко
  • реобас
  • Модернизации системы впрыска на 555
  • помощь
  • Копии схем и печатных плат устройств попавшие ко мне
  • MBM75's блог
  • Буду
  • lagutai's блог
  • Мои проекты.
  • lagutai's блог
  • Трудовик
  • vOVK@'s блог
  • токарь-радиолюбитель
  • azlk3000's блог
  • Коллизия сингулярности
  • SmallAlex's блог
  • Вопрос по Цифровому усилителю мощности звука 2x12 Вт YDA138-E
  • bebulo's блог
  • Простейший макет станка термо-вакуумной формовки
  • Блог им. pryanic
  • peratronika
  • Zer's блог
  • MEDBEDb's
  • Гнездо кукушки
  • hiMiческий блог
  • luna_kamen's блог
  • Изучаем USI на основе сверхэкономичного прототипа
  • Алекс-Юстасу
  • SUBWOOFER.RU
  • kot sansher's блог
  • Поделки стареющего пионера
  • доброжелатель2's блог
  • Grig96. Полезные заметки.
  • Attiny 0-ой и 1-ой серии (Attiny817, 1614 и прочие)
  • pavlo's блог
  • MSP430FR
  • viper2's блог
  • Моя Электро Чинильня
  • Selyk's блог
  • VoltServis.ru
  • kpush's блог
  • OM3 на новых платах.
  • конни's блог
  • Электронный экстазёр "MASHKA".
  • ptimai's блог
  • noc functionalities
  • Sun kapitane's blog
  • ODEON AV-500
  • Sun kapitane's blog
  • Логика на транзисторах,диодах, счетние тригери на транзисторах
  • AleksandrBulchuck's блог
  • Качественные окна от производителя
  • KRALEX's блог
  • Javaman's projects
  • SeVeR36's блог
  • 3232
  • Пять копеек.
  • Az@t's блог
  • Индукционный нагрев
  • Схемы разных устройств
  • Кардшаринг SAT ТВ блог
  • PENTAGRID SAYS
  • Ещо раз о "Кощее 5И"
  • Игровые автоматы на официальном сайте
  • коллекционер
  • дямон's блог
  • Ламповый усилитель и акустика для озвучки семейных мероприятий
  • дямон's блог
  • tiosmutoutrup1971
  • Светомузыкальная установка для новачков
  • Лучшие игры для ПК скачать бесплатно
  • sqait's блог
  • Блокнотик
  • Gubernator's блог
  • Записки электрика
  • Полстакана
  • Vrednyuka
  • Интегральные микросхемы
  • grigorik's блог
  • Интегральные микросхемы
  • VMWare удобство и безопастность
  • Профсоюз обычных пользователей
  • rtfcnf's блог
  • Гидроэнергетика в России: отечественные гидроэлектростанции, типы и характеристики
  • VMWare удобство и безопастность
  • Лайфхаки от Кати
  • Kinh chong anh sang xanh gia re
  • ukabumaga's блог
  • АО "Диполь Технологии"
  • artos5's блог
  • блог
  • Kraftwerk's блог
  • 1
  • Kraftwerk's блог
  • Как выбрать точечный светильник?
  • мастерская ky3ne4ik'а
  • Работа с микроконтроллером Atmega8
  • Aronsky
  • Игорь Камский
  • Диммеры
  • 5В = 1,5+3
  • vitiv' блог
  • Ремонт цифровой панели прибора тойоты марк 100. Замена транзистора 36 ( SOT- 23 )PNP
  • Все СРО России
  • 300writers
  • Металлоискатель Tracker FM-1D3
  • Былое
  • Создание монстра "Blaster 8920"
  • 2Smart Cloud Blog
  • EmmGold's блог
  • 2Smart Cloud Blog
  • ivan15961596's блог
  • Кумир у-001
  • ivan15961596's блог
  • My blog
  • Интернет радио в машину
  • SamON
  • Помогите люди добрые
  • AI
  • Помогите подключить маяк 231 стерео.
  • Гаусс-пушки
  • Название
  • 7400's блог
  • Как я собирал свой первый импульсный источник питания
  • Віталік Приходько_130349's блог
  • Lithium ECAD - российская САПР печатных плат
  • Евгений Малюта's блог
  • ПИшу свои мысли
  • werekpro
  • Venera Electronica
  • afurgon's блог
  • Выбросьте это в парашу!
  • odaplus' блог
  • Zvik's блог
  • Smart overload protection power amplifier «Zita (Z) ThermalTrak™»
  • радиоэлектоника
  • BoBka777's блог
  • МиУЗР - Модернизация и Усовершенствование Звуковой Радиотехники .
  • aleksey9900's блог
  • Лабораторная блок питания
  • Нашел статью о пайке проводов к светодиодов
  • Китайский городовой
  • Костик0's блог
  • УФ лампа для маникюра SK-818
  • 8 Contrasts Between Web Servers and Application Servers
  • Конденсатор
  • Новости, обзоры и другая полезная информация от ИМ "Радиодар"
  • Цветомузыка
  • OPeX3's блог
  • Sem2012's блог
  • это не хлам – это часть моей жизни
  • Контроллер на базе ПК (OS Win LTSC)
  • OdiS' блог
  • Хитрости строителя
  • aleksfil's блог
  • Color Preamp - предусилитель на лампах 12AU7
  • Проблема с зарядкой литиевого аккумулятора для шуруповерта 21 вольт
  • EmmGold's блог; AVR
  • Микроэлектроника
  • З
  • CH32V
  • Блог Плотникова Ильи
  • Бесплатные радиодетали с Алиэкспресс
  • Повышение качества и снижение временных затрат при испытаниях электронных компонентов с помощью отечественного испытательного оборудования
  • Источники питания MEAN WELL
  • Жизнь и рыбалка
  • yureika's блог
  • Глушитель спутникогого интернета
  • Всякая всячина
  • Для начинающих
  • Ignite your senses with the grace and allure of female escorts near Laguna Niguel
  • Fumitox's блог
  • Наш-RXT6 топ-10 на январь 2023: Лучшие сайты онлайн казино в России
  • Лицензионные казино онлайн в 2024 году на реальные деньги
  • Самоделки блог
  • Домашняя автоматика
  • Интересное и полезное
  • Ремонт Амфитон 35у-101с
  • ульян's блог
  • Свет в грузовой газели
  • Блок питания 0-12В для начинающих
  • Список лучших онлайн казино (RU+KZ) по играм на реальные деньги: Легальные сайты России по рейтингу 2024
  • Dimko's блог
  • Иван Самец's блог
  • SolomonVR's блог
  • gendzz's блог
  • fleh138's блог
  • Электроника forever!
  • aleksejhozhenets' блог
  • aleksejhozhenets' блог
  • diserver блог
  • aleksey290476 блог
  • ВАРГ's блог
  • Люстра Чижевского
  • wanes101's блог
  • voldemar2009's блог
  • Jana's блог
  • Jana's блог
  • Рена Искужин's блог
  • abduraxman7's блог
  • Kuzumba's блог
  • Самопальник
  • заработок через интернет на запчасти!!!
  • electric.kiev's блог
  • lolo's блог
  • leravalera's блог
  • ideomatic's блог
  • приглашаем на работу инженера-радиоэлектронщика
  • FREEMAN_77's блог
  • Блог автоэлектрика
  • Блог начинающего электронщика
  • Dersu's блог
  • Электроэнергия и её экономия!
  • Электроэнергия и её экономия!
  • Семён Ковалёв's блог
  • piligrim-666's блог
  • помогите с партотивной калонкой
  • помогите с партотивной калонкой
  • Музыка в стене.
  • m-a-r-i-k-a's блог
  • cosmos44's блог
  • oyama14's блог
  • блог Виталика!
  • ciornii's блог
  • Великий и Ужастный блог
  • Denis__Ricov's блог
  • Universal12's блог
  • Sprut's блог
  • Alexeyslav's блог
  • cosmosemo's блог
  • Заметки радиолюбителя
  • Falconist. Мемуары
  • Блог MillyVolt
  • усилитель импульсов
  • Panasonic sa-ak 18
  • Простое радиоуправление из того, что было.
  • 35house
  • Блог Радиочайника
  • Блохи iiiytnik'a
  • Хороший сервис- Бяка
  • Аудиолаборатория "Философия Звука"
  • ОколоCADовое
  • Блог KVLADS
  • Короп блог
  • Автоматизация котла Protherm MTV
  • Бложиг Касянича
  • Обо всём
  • Эксперимент
  • No electronics
  • ПРИРОДА СВЕТА и ЕГО ВОЗМОЖНОСТИ
  • Генератор на xr2206
  • HTPOWLASER
  • Когда-то были очень популярны у радиолюбителей
  • AVR - микроконтроллеры
  • Микроконтроллер
  • Самодельный автосимулятор
  • Интернет-магазин керамической плитки «Боярская Плитка»
  • Разработка электронных метрических мишеней IPSC для мягкой пневматики (страйкбол)
  • ,

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Skype


ICQ


Интересы


Город


Сфера радиоэлектроники


Оборудование

  1. Здравствуйте. Решил развести для себя плату с STM32F030F4P6. Сделал все по инструкциям, официальному даташиту и Getting Started Guide STM32. Хотел бы узнать, есть ли какие то косяки или ошибки: Верхний слой: Нижний: Большой синий полигон (почти весь нижний слой) - земля, единственное, кварц наверху не поместился, поэтому сделал его на нижнем тоже. Серые фигуры - "переходные отверстия", большие, т.к. у меня нет достаточно тонкого сверла и навыка сверления точно по центру. U1 - LM317LMX, R1 - 200 Om, R2;R4 - 330 Om, C1 - 10мкФ, C2-C6;C9 - 100нФ, С7;С8 - 22пФ, R3 - 1 КОм, U6 - смд кварц на 8МГц, U2 - соответственно STM32F030F4P6, LED1 - красный светодиод. Буду рад любой критике (Про резистор, которые налезает на кварц в курсе, не успел подвинуть. Желтых контуров на текстолите само собой не будет). Спасибо.
  2. Grampus

    Передача по SPI

    Добрый день! ПОМОГИТЕ ПОЖАЛУЙСТА! в описании для одного дисплея нашел код для STM на СИ там есть строчка которая мне не понятна, точнее смысл ее понятен но нет объявления аргументов функции помогите пожалуйста. В общем ситуация такая spi_write ( DTA, 0x00 ) spi_write ( CMD, 0x01) вот эта функция DTA - выполняет установку пина в 1 , CMD - выполняет установку пина в 0 0x00 , 0x01, .........0xFF это либо данные либо команда. и все бы ничего но все это нужно передать по HAL_SPI_Transmit помогите написать эту функцию с описанием аргументов и всех действий.
  3. Всем привет! Задумано следующее: на малинку ставится веб-сервер (именно веб, а не HTTP, т.к. подразумевается тонкий клиент, но возможно я с терминами немного путаю), который обеспечивает управление через тонкий клиент по Ethernet, по Modbus RTU поверх RS-485 малинка должна будет управлять объектом. Т.е. задача такая: на удаленном рабочем месте визуализация объекта и его управление по Modbus. Изначально я хотел под это дело использовать какой-нибудь NUCLEO на процессоре STM32. Но почитал немного о подробностях установки TCP-IP стека и веб-сервера на STM32 и понял, что эту задачу они выполняют, но как-то сложновато. Вроде как Raspberry Pi намного лучше с этим должна справиться. Да и комьюнити намного больше. Ваши мнения, господа?
  4. Всем привет! Столкнулся с проблемой которую не удается решить. прописал в файле Drive.h так: typedef struct { uint8_t FlgL; uint8_t FlgR; uint16_t Speed; uint16_t PulseL1; uint16_t PulseL2; uint16_t PulseR1; uint16_t PulseR2; } Motor_; typedef struct { uint8_t Status; } Button_; extern struct Motor_ Motor; extern struct Button_ Button; а в с файле: #include "Drive.h" Motor.Pulse = 3; // зададим значение переменной в структуре Motor в итоге 2 ошибки редефайн.... как правильно с ними работать? За вчера и за сегодня уже наверное 1000 вариантов попробовал.
  5. Всем доброго времени суток! Необходима стабилизация частоты вращения двигателей по энкодерам. Энкодеры состоят из одного датчика холла на валу двигателя. Эту задачу на АВР я решил при помощи INT0 и аппаратного таймера , попробовал перенести код на STM32 . Попробовал через EXTI , результат не понравился .. Решил через таймер . void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { static uint8_t InpCaptIndexL=0, InpCaptIndexR=0; if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) // =RISING= EDGE DETECTED { // Get =RISING= EDGE Capture value if(InpCaptIndexR==0) { Motor.TimerOldR = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); InpCaptIndexR=1; } else { Motor.TimerNewR = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); InpCaptIndexR=0; } if (Motor.TimerOldR > Motor.TimerNewR) { Motor.MotorRData = (Motor.TimerOldR - Motor.TimerNewR); } else { Motor.MotorRData = (Motor.TimerNewR - Motor.TimerOldR); } // Reset Counter After Input Capture Interrupt Occurs __HAL_TIM_SET_COUNTER(&htim1,0x00); } if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) // =FALLING= EDGE DETECTED { // Get =FALLING= EDGE Capture value if(InpCaptIndexL==0) { Motor.TimerOldL = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); InpCaptIndexL=1; } else { Motor.TimerNewL = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); InpCaptIndexL=0; } if (Motor.TimerOldL > Motor.TimerNewL) { Motor.MotorLData = (Motor.TimerOldL - Motor.TimerNewL); } else { Motor.MotorLData = (Motor.TimerNewL - Motor.TimerOldL); } // Reset Counter After Input Capture Interrupt Occurs } StabMotorSpeed1(); __HAL_TIM_SET_COUNTER(&htim2, 0x00); } в интернете подсмотрел применение захвата но получается какая то каша . Осциллографом четко вижу меандр одинаковой частоты , а в юарт сыпет постоянно разные значения ... (имею ввиду переменную Motor.MotorLData и Motor.MotorRData) Тактирование 64МГц настройки таймера такие: TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_IC_InitTypeDef sConfigIC = {0}; htim2.Instance = TIM2; htim2.Init.Prescaler = 6400; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 65535; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } if (HAL_TIM_IC_Init(&htim2) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) { Error_Handler(); } sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING; sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI; sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; sConfigIC.ICFilter = 0; if (HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } if (HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_2) != HAL_OK) { Error_Handler(); } что то я или недопонимаю , или что то не так приготавливаю.. Пробовал и так: void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) // =RISING= EDGE DETECTED { // Get =RISING= EDGE Capture value Motor.TimerR = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); // Reset Counter After Input Capture Interrupt Occurs __HAL_TIM_SET_COUNTER(&htim1,0x00); } if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) // =FALLING= EDGE DETECTED { // Get =FALLING= EDGE Capture value Motor.TimerL = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); // Reset Counter After Input Capture Interrupt Occurs } StabMotorSpeed(); __HAL_TIM_SET_COUNTER(&htim2, 0x00); } Результат тоже хуже чем на АВР , и в юарт сыпет каша (имею ввиду переменную Motor.TimerL и Motor.TimerR) Помогите пожалуйста разобраться в чем дело.
  6. Mars36

    Отладочная плата под stm

    Добрый день. Имею желание вкатиться в разработку на stm32. Не много погуглив обнаружил копеечный программатор(tt-link), но отладочной платы как у какой нибудь avr'ки не нашел(аля вставил камень, прошил, впаял в плату). Существует множество всяких discovery и им подобных, для проверки работы штука удобная, но для использовании в конечном устройстве нерациональная. Поэтому хотелось бы знать, существуют ли какие либо платы, переходники и т.д.? И если подобных промышленных вариантов нету, то единственный вариант это развести такую самостоятельно и вкорячивать переходники c LQFPхх и т.д.? P.S. Когда то видел вариант у аврки c tqfp корпусом, когда к подобной домашней плате аврку цепляли с помощью прищепки.
  7. Здравствуйте, имеется задача передачи данных от stm32 на ПК и от ПК в stm по UART. Имеется stm32f411e-disco, созданная программа на пк в Qt creator. UART передатчик - CH340. Программа для stm - Keil, настройка в cubeMX. Основные выдержки из кода Qt (mainwindow.cpp): C++ (Qt)Выделить код 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // Настройка UART serial = new QSerialPort(this); serial->setPortName("com4"); serial->setBaudRate(QSerialPort::Baud115200); serial->setDataBits(QSerialPort::Data8); serial->setParity(QSerialPort::NoParity); serial->setStopBits(QSerialPort::OneStop); serial->setFlowControl(QSerialPort::NoFlowControl); serial->open(QIODevice::ReadWrite); /*serial->write("ok*"); */ connect(serial, SIGNAL(readyRead()), this, SLOT(serialReceived())); // Запись принятых даннх в текстовое окно void MainWindow::serialReceived() { QByteArray ba; ba=serial->readAll(); ui->label->setText(ba); qDebug()<<ba; } // Отправка "1" и "2" в зависимости от нажатой кнопки void MainWindow::on_pushButton_clicked() { serial->write("1"); } void MainWindow::on_pushButton_2_clicked() { serial->write("2"); } Настроен UART на прием и передачу. При нажатии какой-либо кнопки по UART передаётся 1 или 2ка. Так же принятая информация отображается в текстовом окне label. При замыкании RX и TX у CH340 отправленная 1 или 2 тут же принимаются программой. Программный код для stm создан в CubeMX. Там подключено два UART, один на приём, другой на передачу (можно настроить один для работы в 2 направления). Основные выдержки из кода Keil (main.c): //Настройка UART serial = new QSerialPort(this); serial->setPortName("com4"); serial->setBaudRate(QSerialPort::Baud115200); serial->setDataBits(QSerialPort::Data8); serial->setParity(QSerialPort::NoParity); serial->setStopBits(QSerialPort::OneStop); serial->setFlowControl(QSerialPort::NoFlowControl); serial->open(QIODevice::ReadWrite); /* serial->write("ok*"); */ // Transmiting "ок" to COM Port connect(serial, SIGNAL(readyRead()), this, SLOT(serialReceived())); // Отображение принятых данных в текстовом меню label void MainWindow::serialReceived() { QByteArray ba; ba=serial->readAll(); ui->label->setText(ba); qDebug()<<ba; } // Отправка 1 или 2 в зависимости от нажатой кнопки void MainWindow::on_pushButton_clicked() { serial->write("1"); } void MainWindow::on_pushButton_2_clicked() { serial->write("2"); } Выдержки из кода в Keil (main.c): // Настройка UART static void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } } // 2 массива для принятия и отправки данных uint8_t strTX[1]; uint8_t strRX[1]; // Попытка сделать что-то адекватное int strTX = 1; while(1) { HAL_UART_Transmit_IT(&huart2, (uint8_t*) strTX, 1); HAL_UART_Receive_IT(&huart2, (uint8_t*) strTX, 1); Код в keil явно кривой, в Qt вроде всё работает. Получается передать из stm в Qt, но из Qt в stm нет. Нужно получить следующее: нажимаем в Qt одну из двух кнопок, отправляется в stm либо 1, либо 2 в зависимости от выбранной кнопки. Stm принимает, обрабатывает, если 1, то загорается один светодиод, если 2, то другой. Дальше stm отправляет обратно в Qt информацию о том, какой светодиод загорелся. P.S: довольно далек от программирования, но стараюсь разобраться. Буду благодарен любой помощти, некоторые скриншоты прилагаю.
  8. В наличии 2 штуки. Цена 1300 рублей за штуку. Новые в упаковке производителя.
  9. Требуется разработать блок управления сплит-системой с функцией обучения по ИК каналу через RS-485 интерфейс на базе МК STM32. Есть ТЗ и список команд управления. Разработка в 2 этапа: 1-разработка принципиальной электрической схемы с указанием элементов на основе структурной из ТЗ (можно в карандаше), 2-написание ПО для МК STM32 в соответствии с ТЗ и списком команд. Оплата поэтапно. Кому интересно - уточняйте детали и оценивайте стоимость работы. Блок управления по ИК каналу Описание.docx Команды MODBUS.xlsx
  10. Требуются разработчики электроники, знающие программирование STM32 или программисты STM32, знающие электронику, возможно студенты. Требования: желание развиваться в данном направлении, наличие собственных проектов на stm32. Возможно официальное оформление или договор подряда. Возможна удалённая работа, но всё равно актуально только для минчан, или для людей, которые в случае чего в течение нескольких часов могут быть в Минске. Связь через ЛС.
  11. Находимся в поиске программиста на длительный проект. Что есть: плата на основе STM32F103 + SIM808 (используется GSM, GPS, Bluetooth) + GPIO Задача - заставить все это работать с сервером (сервер пишется). Подробности при личном общении. Желательно Ростов-на-Дону или Ростовская область. Связь через ЛС или почту Rough_ne(a)mail.ru.
  12. День добрый! Имеется sim-карта со статическим IP и модем SIM800C, который через UART соединен с STM32F0. Прочитав статью на хабре, которая и являлась отправной точкой, было решено повторить подвиг, но в версии lwip 2.0.3, которой я пользуюсь, ppp изменился до неузнаваемости, что сначала внесло некоторый сумбур. Но в документации к lwip был найден текстовый файл с настройкой ppp-соединения (ppp.txt, прикреплю его ниже), в котором было все, что нужно для счастья, но когда модем начал общаться с контроллером, дальше фазы LCP дело не зашло. Как я понял из документа (ppp_connect.docx), который оказался у меня уже-и-не-помню-откуда, после конфигурирования параметров соединения в фазе LCP контроллер должен посылать в модем пакет с заголовком PAP (C0 23), но он почему-то этого не делает... Он вообще больше ничего не делает. Я пытался проследить в отладчике весь путь запроса, что приходит от модема, но это только больше меня запутало. Собственно, прием данных у меня организован через прерывание. После ввода AT-команды "ATD*99***1#" и получения ответа "CONNECT", устанавливается флаг "ppp_enable" и при приходе байта он кладется в очередь `xQueue_PPP_Package`. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { uint8_t u8; if(huart == &huart1) { if (ppp_enable == true) { portBASE_TYPE xHigherPriorityTaskWoken_PPP_Rx; u8 = Sim800.UsartRxTemp; xHigherPriorityTaskWoken_PPP_Rx = pdFALSE; xQueueSendFromISR(xQueue_PPP_Package, &u8, &xHigherPriorityTaskWoken_PPP_Rx); } else { /*Reception of AT commands*/ } HAL_UART_Receive_IT(&huart1,&Sim800.UsartRxTemp,1); } } В задаче `StartLwIPTask` в бесконечном цикле проверяется эта очередь и при появлении элементов, записывает их в массив `PPPx.Data` и при фиксации второго HDLC-заголовка (0x7E), отправляет данные в lwip функцией `pppos_input`. P.S. Переменная `PPPx.Last_Index` это размер пришедшего ppp-пакета. void StartLwIPTask(void const * argument) { /* USER CODE BEGIN StartLwIPTask */ /*Создаем очередь*/ xQueue_Sim800_Package = xQueueCreate(128, sizeof(uint8_t)); xQueue_PPP_Package = xQueueCreate(128, sizeof(uint8_t)); uint8_t u8=0; volatile int setup = 0; tcpip_init( NULL, NULL ); /*Инициализация стека tcp/ip*/ /*Create a new PPPoS interface*/ ppp = pppos_create(&ppp_netif, output_cb, status_cb, 0); // /* Auth configuration, this is pretty self-explanatory */ ppp_set_auth(ppp, PPPAUTHTYPE_PAP, "beeline", "beeline"); /* Require peer to authenticate */ ppp_set_auth_required(ppp, 1); /*Only for PPPoS, the PPP session should be up and waiting for input.*/ ppp_set_silent(ppp, 1); /* * Initiate PPP listener (i.e. wait for an incoming connection), can only * be called if PPP session is in the dead state (i.e. disconnected). */ ppp_listen(ppp); /* Infinite loop */ for(;;) { if (sim800_init() == S_RESET) /*Настройка модуля Sim800*/ continue; for (;;) { if (pdPASS == xQueueReceive(xQueue_PPP_Package, &u8, 100/portTICK_RATE_MS)) { if (u8 == 0x7E) t++; PPPx.Data[PPPx.Last_Index++] = u8; if (t==2) { PPPx.Last_Index--; pppos_input(ppp, PPPx.Data, PPPx.Last_Index); t=0; memset(&PPPx, 0, sizeof(PPPx)); } } } } /* USER CODE END StartLwIPTask */ } Как я писал выше, все идет хорошо, пока идет фаза LCP, но после подтверждения контроллера запроса опций, наступает тишина. В интернете мне удалось найти довольно мало исчерпывающей информации и примеров по связке stm32+lwip+ppp, если кто-нибудь занимался подобным или сталкивался с похожей проблемой, буду очень признателен за помощь и за пинки в нужном направлении. Заранее спасибо. ppp.txt ppp_connect.docx
  13. Гость

    STM32F030C8T6 и "Прерыванько"

    Всем светлым и умным головам привет! Никак не могу найти информацию о данном прерывании TIM1_BRK_UP_TRG_COM. Вопрос 1: Что это за стек или система прерываний? Вопрос 2: Когда будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler, если также есть обработчик прерывания TIM1_CC_IRQHandler? Вопрос 3: период переполнения таймера равен 100 мкс. Сколько раз будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler до обработчика прерывания TIM1_CC_IRQHandler? По логике вещей, предполагаю, что 100 раз? Заранее благодарен! Всем радости))
  14. Приветствую! Мы - молодой стартап из Санкт-Петербурга с хорошей финансовой поддержкой. Создаём дроны. Нам не хватает серьезного программиста на полный загруженный график (можно удаленно). Из основных задач, которые нужно будет решать: 1. Программа отслеживания объекта в видеопотоке (процессор STM32F4xx). 2. Программа стабилизации БПЛА по данным с гироскопа и наведение на цель. 3. Создание программы управления бесколлекторным двигателем по закрытому контуру с возможностью бесшовной интеграции с программой просчёта траектории ЧПУ станка. 4. Программирование бортового комплекса управления БПЛА (автопилот) 5. Полный пакет работ по созданию бортового и наземного комплексов управления роем БПЛА. Оформление в штат. ЗП обсуждаема, от 60 000 в месяц. P.S. дроны, беспилотники, авиамодели... это только начало!
  15. Здравствуйте, хочу изучить семейство Cortex. Начал изучение программирования микроконтроллеров с AVR Attiny2313, Atmega8. Программки писал по самоучителю Белова. Писал простенькие программки чтобы светодиодом при помощи кнопки моргать, бегущие огни, прерывания по таймеру и т.п. Но в моем городе востребованы микроконтроллеры Cortex. В результате нашел вакансию: Требования: • Профильное образование; • Уверенное знание C, опыт разработки от 1-ого года; • Опыт разработки ПО для микроконтроллеров STM32 (ARM CORTEX M) в среде KEIL на языках С и ассемблера. • Опыт работы с интерфейсами передачи данных: Ethernet, UART, I2C, SPI, USB. • Умение читать принципиальные схемы; • Умение пользоваться для отладки осциллографом, JTAG-интерфейсом; • Опыт работы с SVN, Git Отсюда - подскажите литературу где описывается теория, т.е. строение МК, память, регистры и т.д. Также практические примеры использования JTAG, Ethernet, UART, I2C, SPI, USB. Ну и какие железки использовать. В алиэкспресс нашёл: отладочная плата (https://ru.aliexpress.com/item/Free-shipping-100-Original-STM32-Discovery-Board-Stm32f4discovery-Stm32f4-kit-Cortex-m4-STM32-Development-Board-St/32655207218.html?ws_ab_test=searchweb0_0,searchweb201602_2_10152_5722813_10151_10065_10344_10068_10342_5722613_10343_5722913_10340_10341_10543_10698_5711413_10696_10084_10083_5722713_10618_10307_10301_5711213_10059_308_100031_10103_5711513_10624_10623_10622_10621_10620_5722513_5711313_10125,searchweb201603_25,ppcSwitch_5&algo_expid=6bb60057-1829-4c3a-bfcf-64b27a13a331-29&algo_pvid=6bb60057-1829-4c3a-bfcf-64b27a13a331&priceBeautifyAB=0), программатор (https://ru.aliexpress.com/item/1pcs-New-ST-LINK-V2-ST-LINK-V2-CN-ST-LINK-STLINK-Emulator-Download-Manager-STM8/32725864986.html?spm=a2g0v.10010108.1000014.3.2e3e252eARrNY5&traffic_analysisId=recommend_3035_null_null_null&scm=1007.13338.98644.000000000000000&pvid=be1ab406-7b1c-4874-82ab-5ccf70631523&tpp=1). В общем помогите кто чем может.
  16. Приобрёл "NUCLEO-F030R8, Отладочная плата на базе MCU STM32F030R8T6 (ARM Cortex-M0), ST-LINK/V2-1, Arduino-интерфейс" хочу приобрести два модуля к ней но не знаю о совместимости , кого спрашиваю сомневаются и не отвечают уверенно, 1 модуль это 3,2 TFT ЖК дисплей сенсорный , а второй 8 бит LED 8 бит цифровой Tube 8-разрядный ключ. Кто что может подсказать или посоветовать прошу помочь
  17. Здравствуйте! Разовая работа для программистов из Москвы или московской области. Необходимо написать прошивку для отладочной платы на базе чипа BMI055 Даташит: https://www.mouser.com/ds/2/783/BST-BMI055-DS000-08-786482.pdf Более подробное ТЗ вышлю кандидату. Железо предоставлю. Оплата по договоренности. При успешном выполнении, будут регулярные заказы, а также трудоустройство при желании, конкурентная зп по Москве. Если заинтересованы, просьба в комментах или в ЛС оставить контакты для связи.
  18. Smith2007

    Keil mVision V5

    Исследую платку stm32f103c8t6. В качестве ide - Keil mVision v5. Проект на Си++ При работе с UART мне требуется вывести некоторую информацию. Делаю это при помощи следующих функций: void USARTSend(char *ptrOutBuf) { while (*ptrOutBuf) { USART_SendData(USART1, *ptrOutBuf++); while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {} } } void USARTSend(int val) { int i = 0; sprintf(buffer, "%x", val); while (buffer[i]) { USART_SendData(USART1, buffer[i]); i++; while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {} } } void USARTSend(const unsigned char *ptrOutBuf) { while (*ptrOutBuf) { USART_SendData(USART1, *ptrOutBuf++); while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) { } } } В некоторых строках вывожу текст следующим вызовом: USARTSend("\r\nUSART1 is ready.\r\n"); Компилируется без ошибок. Вывод сообщений в UART тоже без ошибок. Но в редакторе кода Keil на против последней записи появляется значок warning! Код выполняется верно Как можно избавиться от неприятного предупреждения?
  19. Дорогие гуру, прошу помощи в освоении SystemCoreClock. Как я понимаю это некая функци в STM32, которая возвращает значение установившейся частоты микроконроллера. Но при прямом использовании IAR ругается на то, что эта функция не объявлена. Конечно можно использовать SPL, но мне крайне необходима максимальная скорость и микрозадержки, поэтому хочется получать значение частоты без SPL и HAL. Спасибо за любую наводку.
  20. K.A.

    Тахометр stm32f1x

    Добрый день. Пытаюсь собрать тахометр на stm32f100c8t6b. Вывод информации - четырехразрядный семисегментный индикатор, счетчик - таймер №1, 1ый канал. На системном таймере висит индикация показаний. Вычисление оборотов - в обработчике таймера 1. Проблема в том, что при подаче импульсов на PB13 (Tim1 Ch1) не происходит прерывания. Скажите, пожалуйста, что я упускаю из виду. Заранее большое спасибо. Taho_2.rar
  21. Max Kondor

    Проблема с SPI

    Доброго времени суток. Изучаю STM32, пользуюсь библиотекой SPL. При изучении SPI возникла проблема. Вся иницилизация проходит успешно, ну когда я пытаюсь прочитать даные с акселерометра, регистр Where_am_i, мне либо ничего не приходит, либо приходит 0xFF. Настраивал все по многим туториалам, результат один и тот же. У людей получается, а у меня нет.
  22. Компания "ОВЕН. Производственное объединение", крупнейший российский разработчик и производитель систем автоматизации, приглашает в свою команду "Инженера-программиста встроенного ПО (Embedded C/C++)". Чем предстоит заниматься: Разработка встроенного ПО для микроконтроллеров семейства ARM (Cortex-M), STM32, AVR на C/C++; Использование встраиваемых операционных систем Segger, Linux; Разработка тестового и отладочного ПО для ПК; Разработка проектной документации. Наши требования: Высшее техническое образование; Опыт работы в области разработки встроенных систем и низкоуровневого программирования от 3-х лет; Опыт разработки на С/С++ под различные платформы и процессоры; Опыт использования встраиваемых операционных и файловых систем; Знание интерфейсов SPI, I2C. Ethernet, USB и протоколов сетевого обмена; Умение работать в системах контроля версий. А если Вы: Знаете промышленные протоколы передачи данных и протоколы IoT; Владеете техническим английским; Имеете широкий кругозор и понимание задач, решаемых с помощью программно-аппаратных разработок; Внимательны к деталям, трудолюбивы и уравновешены. Вы точно тот, кого мы ищем и будем рады отклику! Ценность нашего предложения: "Белая" стабильная заработная плата, полное соблюдение ТК; Участие в разработке высокотехнологичных продуктов для крупных промышленных предприятий; Сильная команда во главе с профессионалами, которые готовы делиться знаниями и опытом; Высококлассная команда поддержки - пунктуальная бухгалтерия, заботливые HR, оперативная техподдержка; Возможности для развития - семинары и мастер - классы для сотрудников. Расположение офиса: м. Авиамоторная Контакты для отправки резюме/вопросов: mygolovanova@gmail.com, Мария
  23. Гость

    STM32 ассемблер

    Добрый день. Начал изучать микроконтроллеры, уроков в интернете на Си достаточно, на ассемблере не так много, может быть кто—то использует ассемблер, и поможет с ответами. Установил keil, в нем пытаюсь что—то писать. Вопрос первый у меня такой, как мне отслеживать бит в конфигурационном регистре, например в RCC, в регистре должен установиться флаг, как мне его отследить в цикле? Если конкретнее как прочитать значение этого бита, 0 там или уже 1. Бит бандинг работает только для установки бита или и прочитать можно? Как проще отследить значение бита? Или вот второй вопрос, с помощью директивы EQU я дал имя адресу конфигурационного регистра, а как задать имя битам этого регистра? Спасибо за помощь
  24. imba

    Прошивка МК самим собой

    Здравствуйте Уважаемые Форумчане! Для себя хотел бы реализовать один проект в котором очень хотелось бы добавить возможность прошивки микроконтроллера(далее МК) самим собой. Чтобы пояснить о чем я, приведу пример. Допустим МК получает прошивку из какого-нибудь источника (скачивает через Wi-Fi с сервера или загуржает с SD-карты или..или...) и записывает ее во внешний EEPROM (или лучше внутренняя flash память?), далее нажимаем кнопку "Обновить"(или же он автоматически сам обновляется) и МК прошивается новой версией прошивки. Вопрос в том, как реализовать это самопрошивание? Я в этом деле новичоки и поэтому в голове только одна идея: потребуется еще один МК, который будет предназначен для прошивки целевого МК. Буду благодарен за любые советы/ответы )
  25. Доброго дня всем. Такое вот дело, нужно сделать некую железку, функционал сейчас не важен. Имеется на руках плата Nucleo-F401RE и дисплей. Поскольку сделан он под Ардуину, а платы Nucleo имеют (в том числе) совместимую с ним разводку разъемов под периферию, дисплей втыкается без переделки, как есть. Все это и красиво и удобно, но вот шина данных, а в данной реализации дисплея используется 8-битная шина, не попадают пин-в-пин с портами МК. Переделка не планируется, надо исходить из то, что есть. Следовательно имеем такую картину: LCD_D7 - PA8 LCD_D6 - PB10 LCD_D5 - PB4 LCD_D4 - PB5 LCD_D3 - PB3 LCD_D2 - PA10 LCD_D1 - PC7 LCD_D0 - PA9 Чтобы отправить байт в дисплей, нужно его раскидать побитно. Моя реализация работает, вот так она выглядит: void lcd35_setData(unsigned char lcd35_data) { // Share data between data bus pins. unsigned int d7, d6, d5, d4, d3, d2, d1, d0; // Clear data bus pins. GPIOA->BSRR = (GPIO_BSRR_BR10 | GPIO_BSRR_BR9 | GPIO_BSRR_BR8); GPIOB->BSRR = (GPIO_BSRR_BR10 | GPIO_BSRR_BR5 | GPIO_BSRR_BR4 | GPIO_BSRR_BR3); GPIOC->BSRR = GPIO_BSRR_BR7; // Split bits d7 = (unsigned int)((lcd35_data & 0x80) << 1); d6 = (unsigned int)((lcd35_data & 0x40) << 4); d5 = (unsigned int)((lcd35_data & 0x20) >> 1); d4 = (unsigned int)((lcd35_data & 0x10) << 1); d3 = (unsigned int)(lcd35_data & 0x08); d2 = (unsigned int)((lcd35_data & 0x04) << 8); d1 = (unsigned int)((lcd35_data & 0x02) << 6); d0 = (unsigned int)((lcd35_data & 0x01) << 9); // Set data GPIOA->ODR |= (d7 | d2 | d0); GPIOB->ODR |= (d6 | d5 | d4 | d3); GPIOC->ODR |= d1; } Может можно сделать оптимальнее? Это прилично замедляет вывод изображения, особенно если выводить картинку целиком (480*320 по 2 байта на пиксель). Я всегда подстраивал железо под удобство написания кода, а тут вот вынужден извращаться. Кстати, гугление по данному экрану (Renesas R61581) выводило только на ардуинистов, неужели никто не подключал его к другим железкам?! Он, говорят, почти совместим с ILI9488. Я бегло прошелся по протоколу оного, да, есть такое, но в команды не углублялся. Вроде все отличие кроется в инициализации. P.S. Сейчас вот подумал, может сперва стоило привести lcd35_data к соответствующему типу, а потом уже применять маску и сдвиг.
×
×
  • Создать...