Поиск по сайту

Результаты поиска по тегам 'STM32'.

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

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

Тип публикаций


Категории и разделы

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

Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Местоположения

  • Пользователи форума

Группа


ICQ


Skype


Интересы


Город


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


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

Найдено 138 результатов

  1. Всем доброго дня, Начинаю изучать STM32. Запустил пример http://www.avislab.com/blog/stm32-timer-pwm/ в котором при нажатии двух кнопок увеличивается и уменьшается яркость на ножке PB6 все работает. Хотел переключить ШИМ на другую ножку в 28 строке поменял GPIO_Pin_6 на GPIO_Pin_7 переключил светодиод на PB7 код не работает. Подскажите что я не правильно делаю?
  2. Приобрёл "NUCLEO-F030R8, Отладочная плата на базе MCU STM32F030R8T6 (ARM Cortex-M0), ST-LINK/V2-1, Arduino-интерфейс" хочу приобрести два модуля к ней но не знаю о совместимости , кого спрашиваю сомневаются и не отвечают уверенно, 1 модуль это 3,2 TFT ЖК дисплей сенсорный , а второй 8 бит LED 8 бит цифровой Tube 8-разрядный ключ. Кто что может подсказать или посоветовать прошу помочь
  3. Здравствуйте! Разовая работа для программистов из Москвы или московской области. Необходимо написать прошивку для отладочной платы на базе чипа BMI055 Даташит: https://www.mouser.com/ds/2/783/BST-BMI055-DS000-08-786482.pdf Более подробное ТЗ вышлю кандидату. Железо предоставлю. Оплата по договоренности. При успешном выполнении, будут регулярные заказы, а также трудоустройство при желании, конкурентная зп по Москве. Если заинтересованы, просьба в комментах или в ЛС оставить контакты для связи.
  4. 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! Код выполняется верно Как можно избавиться от неприятного предупреждения?
  5. Системная частота SystemCoreClock

    Дорогие гуру, прошу помощи в освоении SystemCoreClock. Как я понимаю это некая функци в STM32, которая возвращает значение установившейся частоты микроконроллера. Но при прямом использовании IAR ругается на то, что эта функция не объявлена. Конечно можно использовать SPL, но мне крайне необходима максимальная скорость и микрозадержки, поэтому хочется получать значение частоты без SPL и HAL. Спасибо за любую наводку.
  6. отладки STM32

    есть 2 отладки: 1) TE-STM32F439LCD35, в упаковке, 5500р. 2) STM32F3348-DISCOVERY, 1600р. территориально - Владимирская обл., вышлю почтой, разумный торг уместен.
  7. Тахометр stm32f1x

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

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

    Добрый день. Начал изучать микроконтроллеры, уроков в интернете на Си достаточно, на ассемблере не так много, может быть кто—то использует ассемблер, и поможет с ответами. Установил keil, в нем пытаюсь что—то писать. Вопрос первый у меня такой, как мне отслеживать бит в конфигурационном регистре, например в RCC, в регистре должен установиться флаг, как мне его отследить в цикле? Если конкретнее как прочитать значение этого бита, 0 там или уже 1. Бит бандинг работает только для установки бита или и прочитать можно? Как проще отследить значение бита? Или вот второй вопрос, с помощью директивы EQU я дал имя адресу конфигурационного регистра, а как задать имя битам этого регистра? Спасибо за помощь
  11. Доброго дня всем. Такое вот дело, нужно сделать некую железку, функционал сейчас не важен. Имеется на руках плата 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 к соответствующему типу, а потом уже применять маску и сдвиг.
  12. Добрый день! Необходимо подобрать микроконтроллер, который будет получать команды по serial от esp8266 и димировать RGBW светодиод по следующему алгоритму: https://docs.google.com/document/d/1FkPLiIgxleuDQn8pjihICQGRrMPXbwFzqCt6StQZjhU/edit?usp=sharing а также написать для него прошивку на си. Отвечать можете в телеграм arsenicum32 или сюда. Пишите цену / сроки, находитесь ли в МСК и/или в области.
  13. Stm32f1 usart

    Доброго времени суток, нашел хорошую статью Usart прием и отправка строки. Настроил на порт Usart3 перестал работать, попробовал на Usart2 перекинуть тоже не работает, как правильно переделать подскажите... stm32-uart-spl.rar
  14. Приветствую! Собираю пульсоксиметр на MAX30100. Нашел на просторах интернета готовый код,но под STM32,но на винду хп драйвера не идут. Может кто-нибудь помочь переделать код под Ардуино Уно. Отблагодарю))
  15. Продам остатки от производства: Микроконтроллер STM32L151C8T6 - 19шт. 200 руб. штука, все скопом - 3000р. Кварцы KX-9A 8МГц в ленте 100шт. по 30р. шт., оптом - 2500р. за все. Все компоненты новые, не паянные. Пересылка за ваш счет из Ростова-на Дону. Связь через ЛС.
  16. Доброго времени суток. Хотел бы попросить вас помочь мне изучить микроконтроллеры STM32. Я знаком с AVR, ну STM32 кажется мне сложнее, хотелось бы получить от ВАС какую-то литературу, полезные ссылки. Начать своё изучения я хочу с мигания светодиода). Сперва я думал сам сделать себе отладочную плату, ну потом мной было принято решения взять себе не очень дорогой вариант Discovery, так как он имеет встроенный программатор, который можно использовать к разным МК этой компании.
  17. Требуется консультация либо шабашка с оплатой за написание кода к SPC560D30L1
  18. Cвоя система на Stm32f407VE

    Добрый день, (пост длинный, если нужна суть, читаем со 2 абзаца, все вопросы к Вам - в конце) 1) Около года назад понял, что ардуинка это всего-лишь игрушка (а потратил на неё довольно большие для подростка деньги), разочаровался и наконец вовсе забросил всё это (ещё немного поигравшись с avr). Потом интерес ожил, заказал с али вот такую (см прикрепление) платку с Stm32f407VE камнем с 168 мгц, DMA, 192 КБ ОЗУ, 512 КБ ПЗУ и множество других различных вкусностей. Во время того, как эта платка лежала на таможне, ускоренными курсами проходил вот такую книжку http://www.softlabirint.ru/book/23552-mikrokontrollery-avr-ot-azov-programmirovaniya-do-sozdaniya-prakticheskih-ustroystv-av-belov-2016-pdfcd.html (хотя она для AVR, но для общего развития сошла :-)) 2) Ну естественно, программировать stm посложнее чем avr (да ещё корявые библиотеки *(), да и тем более чем ардуинку. Решил попробовать всё самому https://habrahabr.ru/post/216843/ Поэтому даже старый-добрый Hello World на C++, да или просто С, (пока нет разницы) пошёл ну ОЧЕНЬ медленно, но стартовал. Но зачем мне такая крутая платка для таких простых вещей, на которых хватило и возможностей Attiny? Да просто вдохновился такими проектами, как uzebox, avrchipbasic, эмулятор ZX Spektrum и проч. Но ведь возможности stm32f407 гораздо выше даже самой навороченной uzebox. По этому решил создать собсетвенную систему на этом камне с прерываниями, видеоплеером, ну и т.д. на C++. Естественно, это не тяп-ляп, да и корабль, а вполне серьёзная штука. Есть множество вопросов по ней. Ну, поехали! I) Необходимо будет выполнять программы с Nand памяти, а сохранять и считывать, копировать с Micro sd (а это возможно?) II) Решил использовать C++, но не думаю что его гибкости хватит на все задачи (а может, хватит?) III) Микропроцессору, хотя и мощному, придётся одновременно и решать задачи, и производить прерывания, переключения, считывание, вывод информации НА ТВ ЭКРАН ПОСРЕДСТВОМ ТЮЛЬПАНОВ, вывод звука и прочие задачи. (А хватит на всё?) IV) Решил использовать встроенную 192-КБ память для самой "Операционки" и её ядра, а для других приложений использовать внешнее ОЗУ V) а) Возможна ли разработка приложений для этой платы с неё самой (из-под неё, только как будет производиться компиляция?) б) Если пункт а) невыполним, то возможна компиляция программ на пк, например, в двоичный код, который понятен ядру ARM? VI) Вообще за сколько можно разработать такую систему при ежедневной разработке в течение часа и постоянно кричащей маме "Делай уроки!" За грамотные ответы буду очень благодарен!
  19. Вот код: @@@@@@@@@@@@@@@@@@@ @ @Настройки @ @@@@@@@@@@@@@@@@@@@ .syntax unified .thumb .cpu cortex-m4 @@@@@@@@@@@@@@@@@@@ @ @Макросы @ @@@@@@@@@@@@@@@@@@@ .section .text .macro MOV32 regnum,number MOVW \regnum,:lower16:\number MOVT \regnum,:upper16:\number .endm .macro JMP address B \address .endm @@@@@@@@@@@@@@@@@@@@ @ @Табица прерываний @ @@@@@@@@@@@@@@@@@@@@ .word 0x2001BFFF @ Вершина стека, зависит от размера ОЗУ .word Start+1 @ Вектор сброса, обязательно +1 @@@@@@@@@@@@@@@@@@@@ @ @Код @ @@@@@@@@@@@@@@@@@@@@ Start: MOV32 R0, 0x00 MOV32 R1, 0b01010101010101010101010101010101 STR R1, [R0] B Start .end Вот логи компилятора: При прошивке, конечно, пишет: Среда Coide 1.7.8. Контроллер Stm32f407vg Заранее спасибо.
  20. STM32F1 проблемы с приемом по UART

    Доброго времени суток. Решил пробудить свои скилы по написанию программ под stm32f103. Поигрался с SMT32CUDEMX и HAL, но вернулся к SLP библиотеке. Начал постепенно наращивать программу по примерам, начиная с GPIO, тактирования и на работе c USART встал. Суть в том что передача по UART идет нормально, а вот прием приводит к "зависанию". Устанавливая бесконечные while с мигалками внутри, я выяснил что по все видимости МК не переходит в прерывания USART1_IRQHandler. Я не могу понять в чем ошибка, раньше с таким не сталкивался, хотя написал несколько программ для stm32f100 .____. Среда разработки Atollic TrusStudio 9.0.0. #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "misc.h" #include <string.h> // тактовый светодиод для индикации #define LED GPIO_Pin_5 #define RX_BUF_SIZE 80 volatile char RX_FLAG_END_LINE = 0; volatile char RXi; volatile char RXc; volatile char RX_BUF[RX_BUF_SIZE] = {'\0'}; volatile char buffer[80] = {'\0'}; void init_GPIO(void); void SetSysClockTo72(void); void init_uart(void); void clear_RXBuffer(void); void USARTSend(const char *pucBuffer); void USART1_IRQHandler(void) { GPIO_ResetBits(GPIOA, LED); //GPIOA->ODR ^= LED; //USART_ITConfig(USART1, USART_IT_RXNE, DISABLE); //if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { //if ((USART1->SR & USART_FLAG_RXNE) != RESET) { //if ((USART1->SR & USART_SR_RXNE) != (u16)RESET) { if (USART1->SR & USART_SR_RXNE) { // Сбрасываем флаг прерывания USART1->SR &=~ USART_SR_RXNE; //RXc = USART_ReceiveData(USART1); //RX_BUF[RXi] = RXc; //RXi++; //if (RXc != 13) { // if (RXi > RX_BUF_SIZE-1) { // clear_RXBuffer(); // } //} //else { // RX_FLAG_END_LINE = 1; //} //Echo //USARTSend("Interrapt_UART1\r\n"); //USART_SendData(USART1, RXc); } //return } int main(void) { int i; //SetSysClockTo72(); init_GPIO(); init_uart(); USARTSend("Test USART1\r\n"); while (1) { //if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9) != 0) { /* Toggle LED which connected to PC13*/ GPIOA->ODR ^= LED; // Invert C13 /* delay */ for(i=0;i<0x100000;i++); /* Toggle LED which connected to PC13*/ GPIOA->ODR ^= LED; /* delay */ for(i=0;i<0x100000;i++); USARTSend("Test USART1\r\n"); //} //else { //GPIO_SetBits(GPIOA, LED); //} } } void init_GPIO(void) { // Создаем класс для постепенной настройки параметров и единовременного применени¤ GPIO_InitTypeDef GPIO_InitStructure; //Настрайваем светодиод, включаем тактирование GPIOA RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // Конфигурация для светодиода, режим работы, максимальная скорость GPIO_InitStructure.GPIO_Pin = LED; // GPIO_Mode_Out_OD выход с открытым стоком, GPIO_Mode_Out_PP выход двумя состояниями // GPIO_Mode_AF_OD выход с открытым стоком для альтернативных функций, GPIO_Mode_AF_PP то же самое, но с двумя состояниями GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // Устанавливаем начальное значение SetBits -> High level ("1"), ResetBits -> Low level ("0") GPIO_ResetBits(GPIOA, LED); // Настрайваем пин 9, регистра B на вход, для отладки, включаем тактирование регистра B RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // Настрайваем для кнопку, пин, режим, максимальная частота входного сигнала GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // GPIO_Mode_AIN аналоговый вход, GPIO_Mode_IN_FLOATING вход без подтяжки, болтающийся // GPIO_Mode_IPD вход с подтяжкой к земле, GPIO_Mode_IPU вход с подтяжкой к питанию GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } void SetSysClockTo72(void) { ErrorStatus HSEStartUpStatus; /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/ /* Системный RESET RCC (делать не обязательно, но полезно на этапе отладки) */ RCC_DeInit(); /* Включаем HSE (внешний кварц) */ RCC_HSEConfig( RCC_HSE_ON); /* Ждем пока HSE будет готов */ HSEStartUpStatus = RCC_WaitForHSEStartUp(); /* Если с HSE все в порядке */ if (HSEStartUpStatus == SUCCESS) { /* HCLK = SYSCLK */ /* Смотри на схеме AHB Prescaler. Частота не делится (RCC_SYSCLK_Div1) */ RCC_HCLKConfig( RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ /* Смотри на схеме APB2 Prescaler. Частота не делится (RCC_HCLK_Div1) */ RCC_PCLK2Config( RCC_HCLK_Div1); /* PCLK1 = HCLK/2 */ /* Смотри на схеме APB1 Prescaler. Частота делится на 2 (RCC_HCLK_Div2) потому что на выходе APB1 должно быть не более 36МГц (смотри схему) */ RCC_PCLK1Config( RCC_HCLK_Div2); /* PLLCLK = 8MHz * 9 = 72 MHz */ /* Указываем PLL от куда брать частоту (RCC_PLLSource_HSE_Div1) и на сколько ее умножать (RCC_PLLMul_9) */ /* PLL может брать частоту с кварца как есть (RCC_PLLSource_HSE_Div1) или поделенную на 2 (RCC_PLLSource_HSE_Div2). Смотри схему */ //RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); RCC_PLLConfig(0x00010000, RCC_PLLMul_9); /* Включаем PLL */ RCC_PLLCmd( ENABLE); /* Ждем пока PLL будет готов */ while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } /* Переключаем системное тактирование на PLL */ RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK); /* Ждем пока переключиться */ while (RCC_GetSYSCLKSource() != 0x08) { } } else { /* Проблемы с HSE. Тут можно написать свой код, если надо что-то делать когда микроконтроллер не смог перейти на работу с внешним кварцом */ /* Пока тут заглушка - вечный цикл*/ // while (1) { //} } } void init_uart(void) { /* Enable USART1 and GPIOA clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE); /* Configure the GPIOs */ GPIO_InitTypeDef GPIO_InitStructure; /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure USART1 Rx (PA.10) as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure the USART1 */ USART_InitTypeDef USART_InitStructure; /* USART1 configuration ------------------------------------------------------*/ /* USART1 configured as follow: - BaudRate = 115200 baud - Word Length = 8 Bits - One Stop Bit - No parity - Hardware flow control disabled (RTS and CTS signals) - Receive and transmit enabled - USART Clock disabled - USART CPOL: Clock is active low - USART CPHA: Data is captured on the middle - USART LastBit: The clock pulse of the last data bit is not output to the SCLK pin */ USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); /* Enable USART1 */ USART_Cmd(USART1, ENABLE); /* Enable the USART1 Receive interrupt: this interrupt is generated when the USART1 receive data register is not empty */ USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); /* NVIC Configuration */ NVIC_InitTypeDef NVIC_InitStructure; /* Enable the USARTx Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //NVIC_EnableIRQ(USART1_IRQn); } void clear_RXBuffer(void) { for (RXi=0; RXi<RX_BUF_SIZE; RXi++) RX_BUF[RXi] = '\0'; RXi = 0; } void USARTSend(const char *pucBuffer) { while (*pucBuffer) { USART_SendData(USART1, *pucBuffer++); while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) { } } }
  21. Увеличить выходной ток с ЦАП STM32

    Имеется STM32F405RGT6. С выхода его ЦАП необходимо получить ток 50 мА. Диапазон напряжений необходимо изменять в пределах от 3.5 до 4.5 В, ну или же расширить от 0 до 5 В.С самого же выхода ЦАП, согласно даташиту, можно получить не более 25 мА и напряжение в пределах от 0 до 3.3 В. Как лучше совершить преобразование?
  22. Добрый вечер! Необходимо написать код и разработать схему для контроллера управления домом: 1й этап самый простой, необходим код для управления освещением. 2й этап, написание кода для управления температурой дома. Цена и сроки договорные, подробности в личке. Забыл добавить. Код нужен для отладочной платы STM32VLDISCOVERY, только камень заменен на stm32f103ret6 В начале нужна будет консультация по установке и настройке всех необходимых программ для прошивки МК
  23. Описание stdlib

    Добрый! Осваиваю стм32. Уточните пожалуйста, есть ли описание библиотеки stblib ? как с ней работать?
  24. EmBlocks Вывод текста через SWO(SWD)

    Добрый день, недавно начал изучать азы STM, и наткнулся на интересную возможность, а именно отправлять текст через отладочный порт: https://hubstub.ru/stm32/111-otladka-po-swd-stm32.html (дабы долго не обьяснять о чем я веду речь, ибо без знания терминов это может затянутся). Так вот, столкнулся я с проблемкой, а именно где же можно данные сообщения посмотреть в EmBlocks, отладочные окна пролез все, там не нахожу, возможно нужно ковырять глубже настройки среды? или данная среда не умеет отображать эти сообщения? Очень не хотелось бы городить UART для отображение отладочных сообщений...
  25. Есть вот ЭТО и вот ЭТО....

    Всем привет! Ребят есть вот это STM32F030K6T6 вот это, адаптер для прошивки и это, собственно чем прошить. Имеется прошивка, скетч, для двух Atmega328p. Есть пьезоэлементы, которые подсоединены к аналоговому пину, при касании, одна другой передаёт символы через NRF24l01, друга принимает таким же модулем и отправляет данные по блютус HC-05 на телефон. Хотелось бы перенести её на STM32, не бесплатно конечно но и в рамках разумного. Цель переноса на STM32 - увеличить скорость отклика (задержка между ударом по пьезику и появлением символа в мониторе порта телефона) пьезо! И есть уже адаптер для прошивки МК с 32 ножками. Буду признателен если кто то ответит, можно в ЛС