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

STM32 для чайника


ART_ME

Рекомендуемые сообщения

H3c8d9e25cf884cc0ac306d23b6107e2dZ.jpg

сотни чего рублей?.Рабочая плата.В HAL е работает.Все прерывания.Я купил за 230 гривень.А Это немного больше умножить в два если рублей.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

@Ivan Rusev У меня есть такая плата без деталей, я бы купил сам глючный чип, просто ради интереса. Я знаю что вы из Украины (хакнул вашу почту), но я писал не вам.

Ссылка на комментарий
Поделиться на другие сайты

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

@Darth_Vader Кроме этих проблем есть еще проблемы с тактированием, человек же не совсем вроде глупый. Тем более есть инфа о подделках.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, Darth_Vader сказал:

А второй вывод светика к чему?

Ну человек же пишет что 1 раз делает BSSR включается, второй раз делает то же самое - выключается.

Какая разница к чему. Вопрос что у него выводы как toggle работают якобы через регистр. Значит либо не верно проверяет, либо мистика)) Либо где то в коде что то есть еще)

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

я думаю учителя скорее всего в коде или в компиляторе.У меня таких две платы от разных производителей.А если в камне.То какой контроллер тогда вы мне посоветуете? если cortexm3 он у меня есть там всё как часы.

Есть проект можете посмотреть.

Ссылка на комментарий
Поделиться на другие сайты

MasterElectric чудеса были из за плохой пайки стороны выводов чипа которые идут на кварц, вот и были чудеса, а как чип к плате придавил, а потом и пропаял, и дисплей запустился сразу и светики нормально работают и тактирование и задержки. Паял его пол года назад на скорую руку, так было проверил тогда какой-то кусок кода он работал, а потом эту плату закинул, а тут понадобилось и чудеса пошли), причем два дня угробил, и анализатор подключал и дебагером смотрел все вроде работает, но тот же дисплей не запускался, так как задержки не те были и т.д..

Ссылка на комментарий
Поделиться на другие сайты

Нет тут другое .Ацп работает  в основном цикле.А в прерывании в майне прописываю ADC1->CR2|= ADC_CR2_SWSTART;  и все прерывания перестают работать .Почему? Значить я что то не то делаю. Может проблема с тактированием.А может не всё я прописал.Вообще С Новым 2020 годом!

Ссылка на комментарий
Поделиться на другие сайты

@Электронщик Ну вот даже под Новый Год нет чудес... всех с Новым Годом!!! Всем творческих успехов и чтобы код легко ложился и правильно работал.

Ссылка на комментарий
Поделиться на другие сайты

On 12/29/2019 at 10:45 PM, Ivan Rusev said:

void adc_IRQhanler(void)

Нельзя Новый год начинать с незаконченными делами. Обработчик не правильно назван, надо типа

void ADC_IRQHandler(void) с учетом регистра

Ссылка на комментарий
Поделиться на другие сайты

void adc_IRQhanler(void) в этом вся причина спасибо я потерял бдительность .С НОВЫМ ГОДОМ! ПРЕРЫВАНИЕ ЗАРАБОТАЛО.Я ВАМ БЛАГОДАРЕН,УКРАИНА ВСЕГДА БУДЕТ С РОССИЕЙ ВМЕСТЕ,БОЛЬШОЕ ВАМ СПАСИБО.

void ADC_IRQHandler(void) Вот так правильно.

Извините  я ученик.

Ссылка на комментарий
Поделиться на другие сайты

MasterElectric Классное пожелание, тем более что с кодом всегда много проблем))), даже бывает сто раз код пишешь и уже до этого натыкался на грабли, и все равно ту да же наступаешь, особенно из - за невнимательности, или когда кодишь ночью.

Ссылка на комментарий
Поделиться на другие сайты

У меня мастера паяльника возникла проблема есть прерывание по ацп инжектированных каналов  я или неправильно делаю что в хале что в ручную прерывание  работает после нажатия reset как в одну так и в другу сторону.Диод загорается как в одну так и в другу гаснет после ресета.

/*
 * main.c
 *
 *  Created on: 8 лист. 2019 р.
 *      Author: Ivan
 */


#include"main.h"
#include "stm32f4xx.h"
#include "stm32f407xx.h"
volatile unsigned int pauza=0;
volatile unsigned char flag=0;
volatile unsigned char n=0;
volatile unsigned int adc_data=0;
void EXTI1_IRQHandler(void)
{
    EXTI->PR |=EXTI_PR_PR1;
    n++;
}
void ADC_IRQHandler(void)
{
     if(ADC1->SR & ADC_SR_JEOC) //ждем пока первое преобразование завершится
     {
                        ADC1->SR &=~ ADC_SR_JEOC;
                          adc_data = ADC1->JDR1;

                           if(adc_data > 2024)
                         {

                               GPIOC->BSRR |= GPIO_BSRR_BS13;
                         }
                         else
                         {

                             GPIOC->BSRR |= GPIO_BSRR_BR13;
                         }
     }
}
void TIM3_IRQHandler (void)
{
  if(TIM3->SR & TIM_SR_UIF)
  {
    TIM3->SR &= ~ TIM_SR_UIF;
    pauza++;
    if(pauza>20)
    {
          GPIOC-> BSRR |=GPIO_BSRR_BS0;
    }
    if(pauza>40)
    {
         GPIOC-> BSRR |=GPIO_BSRR_BR0;
        pauza=0;
    }
   }
    //TIM2->SR &= ~ TIM_SR_UIF;
}
void EXTI_Init(void)
{

     // RCC->AHB1ENR|=RCC_AHB1ENR_GPIOAEN;
      GPIOA->MODER &=~ GPIO_MODER_MODER1_1;
      GPIOA->MODER &=~ GPIO_MODER_MODER1_0;
      GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR1_1; //бит1
     GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR1_0;
       GPIOA->PUPDR &=~GPIO_PUPDR_PUPDR1_1;
        GPIOA->PUPDR |= GPIO_PUPDR_PUPDR1_0;
        RCC->APB2ENR |=RCC_APB2ENR_SYSCFGEN ;
        SYSCFG->EXTICR[1] |= SYSCFG_EXTICR1_EXTI1_PA;
        EXTI->IMR|=EXTI_IMR_MR1;
        EXTI->RTSR|=EXTI_RTSR_TR1;
        EXTI->FTSR&=~EXTI_FTSR_TR1 ;
        NVIC_EnableIRQ (EXTI1_IRQn);
      //  SYSCFG->EXTICR[3] |= SYSCFG_EXTICR1_EXTI1_PB;
 //RCC->AHB1ENR |=
}

void adc_init(void)
{
 //RCC->AHB1ENR|=
        // RCC->AHB1ENR|=RCC_AHB1ENR_GPIOAEN;
         // GPIOA->MODER |= GPIO_MODER_MODER0;
          RCC->APB2ENR|=RCC_APB2ENR_ADC1EN;
          ADC1->CR2 |=ADC_CR2_CONT;//включить АЦП
               ADC1->CR2|=ADC_CR2_JEXTSEL;
                  ADC1->CR2 |=ADC_CR2_JEXTEN;

          ADC1->SMPR2 &=~ ADC_SMPR2_SMP1_0; //1
         ADC1->SMPR2&=~ADC_SMPR2_SMP1_1; //1
          ADC1->SMPR2 &=~ ADC_SMPR2_SMP1_2; //1

          ADC1->JSQR &=~ADC_JSQR_JSQ1;
           //  ADC1->SQR3   &=~ADC_SQR3_SQ1_0;   //1 IN1
          //      ADC1->SQR3   &= ~ ADC_SQR3_SQ1_1;     //0
          //      ADC1->SQR3   &= ~ADC_SQR3_SQ1_2;   //0
          //      ADC1->SQR3   &=~  ADC_SQR3_SQ1_3;     //0
          //      ADC1->SQR3   &= ~ADC_SQR3_SQ1_4;

}
void GPIO_init(void)
{
        RCC->AHB1ENR|=RCC_AHB1ENR_GPIOAEN;
              GPIOA->MODER |= GPIO_MODER_MODER0;
              GPIOA->MODER |= GPIO_MODER_MODER1;
           RCC->AHB1ENR|=RCC_AHB1ENR_GPIOCEN;

               // GPIOC->MODER &=~ GPIO_MODER_MODER13;
                   GPIOC->MODER &=~ GPIO_MODER_MODER13_1;
                   GPIOC->MODER |= GPIO_MODER_MODER13_0;
                   GPIOC ->OTYPER &=~GPIO_OTYPER_OT13;
                   //бит0 определяет скорость работы GPIO
                    GPIOC->OSPEEDR &=~ GPIO_OSPEEDER_OSPEEDR13_1; //бит1
                    GPIOC->OSPEEDR &=~ GPIO_OSPEEDER_OSPEEDR13_0;
                   GPIOC->PUPDR |=GPIO_PUPDR_PUPDR13_1;
                     GPIOC->PUPDR &=~ GPIO_PUPDR_PUPDR13_0;
                    GPIOC->MODER &=~ GPIO_MODER_MODER0_1;
                        GPIOC->MODER |= GPIO_MODER_MODER0_0;
                        GPIOC ->OTYPER &=~GPIO_OTYPER_OT0;
                                                 //бит0 определяет скорость работы GPIO
                     GPIOC->OSPEEDR &=~ GPIO_OSPEEDER_OSPEEDR0_1; //бит1
                    GPIOC->OSPEEDR &=~ GPIO_OSPEEDER_OSPEEDR0_0;
                    GPIOC->PUPDR |= GPIO_PUPDR_PUPDR0_1;
                    GPIOC->PUPDR &=~ GPIO_PUPDR_PUPDR0_0;
                    GPIOC->MODER &=~ GPIO_MODER_MODER0_1;
                   GPIOC->MODER &=~ GPIO_MODER_MODER0_1;
                                          GPIOC->MODER |= GPIO_MODER_MODER2_0;
                                          GPIOC ->OTYPER &=~GPIO_OTYPER_OT2;
                                                                   //бит0 определяет скорость работы GPIO
                                       GPIOC->OSPEEDR &=~ GPIO_OSPEEDER_OSPEEDR2_1; //бит1
                                      GPIOC->OSPEEDR &=~ GPIO_OSPEEDER_OSPEEDR2_0;
                                      GPIOC->PUPDR |= GPIO_PUPDR_PUPDR2_1;
                                      GPIOC->PUPDR &=~ GPIO_PUPDR_PUPDR2_0;
                                      GPIOC->MODER &=~ GPIO_MODER_MODER2_1;

}
void init_systimer(void)
{
  SysTick->LOAD|=1000 - 1;
  SysTick->VAL=0;
  //SysTick->CTRL|=CLKSOURCE;


}
void timer_3_init(void)
{


      RCC->APB1ENR |=RCC_APB1ENR_TIM3EN;
      //NVIC_SetPriority(TIM3_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));

      //  TIM3->CNT=0;
       // TIM3->CR1=0;
      //TIM3->CR1&=~ TIM_CR1_CEN;
       TIM3->PSC=3500 - 1; // Настраиваем делитель что таймер тикал 1000 раз в секунду
           TIM3->ARR  = 100;


        TIM3->DIER = TIM_DIER_UIE;
        TIM3->EGR = TIM_EGR_UG ;


         TIM3->CR1|=   TIM_CR1_CEN;
         NVIC_EnableIRQ(TIM3_IRQn);
}

int main(void)
{
               GPIO_init();
               // EXTI_Init();
               timer_3_init();
              adc_init();
              ADC1->CR1|= ADC_CR1_JEOCIE;
                   ADC1->CR2 |=  ADC_CR2_ADON;
                     NVIC_EnableIRQ ( ADC_IRQn);
                     ADC1->CR2 |= ADC_CR2_JSWSTART;
    while(1)
    {
        //if(n==1)
    //    {
        // GPIOC-> BSRR |=GPIO_BSRR_BS13;
        //}
        //if(n==2)
        //{
        //          GPIOC-> BSRR |=GPIO_BSRR_BR13;
        //          n=0;
        //}
                           //      if(adc_data > 2024)
                          //   {

                           //        GPIOC->BSRR |= GPIO_BSRR_BS13;
                           //  }
                           //  else
                          //   {

                            //     GPIOC->BSRR |= GPIO_BSRR_BR13;
                            // }
    }
}
извените за назойливость.

Ссылка на комментарий
Поделиться на другие сайты

Вообщем что-то по ходу сдох мой чип STM32F407, который запаивал, половину проги написал все работало, а потом раз и что-то случилось с тактированием, и опять на Delay застряет в отладчике посмотрел. при этом на кварце никаких шевелений, менял и кварц, и внутреннее тактирование бред какой-то, все прозвонил и пропаял 5 раз ничего, чип  брал в РКС еще у него 7 ног были на половину отрезаны с магазина и даже жалобу оставлял, но без толку, решил на эту плату подкинуть F745, и тут вопрос по поводу тактирования, вот 745 максимум 216МГц, я в основном и юзаю на предельных частотах, так вот вопрос: к примеру в кубе кварц можно выбирать в пределах до 26МГц, с каким кварцем лучше  будет работать чип с 8МГц или с 20МГц, или с 24МГц, 25МГц? Или это не принципиально, к примеру у меня есть F769, там кварц на 25МГц стоит, при этом чип максимум 216МГц.

Изменено пользователем Электронщик
Ссылка на комментарий
Поделиться на другие сайты

не плате стоит 8 но у меня нет настройки тактирования. я пишу в опциях    parths and symbol HSE_VALUE 25000000U.И у меня файле system c отключается внешнее тактирование.

хотя в хале  там всё автоматом но прерывания по инжектируемого ацп  оно также работает не так.

Ссылка на комментарий
Поделиться на другие сайты

16 часов назад, Электронщик сказал:

с каким кварцем лучше  будет работать чип с 8МГц или с 20МГц, или с 24МГц, 25МГц

для PLL никакой разницы. Главное чтобы в диапазон по ДШ входил и распаян правильно. Емкости компенсирующие я имею в виду. Для 8 и для 25 они будут разные. Про это в ДШ кстати тоже написано

Изменено пользователем mail_robot

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

Ссылка на комментарий
Поделиться на другие сайты

29.12.2019 в 22:45, Электронщик сказал:

Получается камень поддельный? Или сам IAR? Вы в чем пишите в IAR? А есть кусок кода с тактированием? Чтобы помигать светиком проверить есть ли инверсия, и что с тактированием

Актуально ещё? Могу поэкспериментировать.

Ссылка на комментарий
Поделиться на другие сайты

Тактирование я не настраивал 

5 часов назад, Ivan Rusev сказал:

parths and symbol HSE_VALUE 25000000U

только прописываю в Atolic Truestudio.Инверсия есть только после нажатия RESET.B Halтоже самое.

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

всем привет. появилась необходимость в проекте использовать usb virtual com port, чтобы не использовать внешний чип преобразователь решил юзать хардварный usb чипа stm32f407.
подскажите какую то библиотеку, реализующую данную функцию. (а то сам попытался освоить под это дело куб и хал - остался крайне недоволен, куча глюков всплывает при кубовой реализации).

Ссылка на комментарий
Поделиться на другие сайты

Всем привет!   Контора закупила EasyMx Pro v7 от Микроэлектроника. Может быть кто-то пользовался и подскажет: будет ли эта плата работать с StmCube mx и IAR  ?  Или надо пользоваться прогами от Микроэлектроники? (я так понимаю, что их МикроСи не очень популярен). Не хотелось бы тратить время на изучение того, что не пригодится.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Уже даже нет желания объяснять, что такое двойка и тройка ВК ... Скажу по секрету, это никак не связано с количеством парт транзисторов ВК.
    • @irfpsДоброго А какое напряжение автогена вам необходимо?  в теме про магнитные усилители выкладывал автоген пуш-пул с напряжением запуска 2,2 В с "катушкой зажигания", но потом забросил, остался лишь макет, работает от одного литиевого аккумулятора.  В том случае(с "катушкой зажигания") можно пускать любой автоген при любом напряжении. Успехов
    • Уже который день пытаюсь разобраться с дисплеем. Слишком там как то в коде дисплея запутано. Я ещё разок наверное попробую сделать. Но если не получится, то я откажусь от дисплея и поставлю семисегментные индикаторы и многоцветные светодиоды и буду выводить кое какую информацию так. Ими управлять намного проще. Разве что имя воспроизводимого файла вывести не удастся. Но не велика потеря. Можно ведь просто номер музыки выводить. Всё лучше чем ничего. С самим плеером там всё понятно сложностей не будет точно нужно всего будет уточнить несколько деталей по командам, а то в описаниях не очень понятно. С UART там тоже всё понятно никаких сложностей нет.Но вот с дисплеем какой то затык получается.
    • Приветствую. Ревер запустил, побаловался - ну, такое себе. Не именно качество пружинного ревера, а сама по себе идея эха не понравилась. Зачем? Хорошая гитара с хорошими активными звучками и так звучит отлично. Причем, довольно объемно и без эха. Наваял вот такой девайс для управления ревером по схеме отсюда: https://sound-au.com/project34.htm Схема такая: Данная схема приглянулась тем, что можно отдельно регулировать уровень "чистого" сигнала и добавлять к нему сигнал ревера. Все заработало с первого раза. Если кому-то интересно - выложу мой вариант схемы и печатку сюда. На моей схеме и плате (при помощи джамперов) предусмотрел возможность использования схемы с разными реверами согласно таблице: Данная схема не понравилась тем, что ревер в ней всегда работает "на всю мощь" - регулируется только его громкость. Мне кажется, если схему добавить возможность ограничения усиления перед ревером, то это даст возможность регулировать итенсивность эха. Или нет? Стоит по этому поводу заморочиться и дать схеме еще один шанс? Интерес к данному проекту я потерял, планирую попробовать цифровой ревер. Если кому-то интересно продолжить проект или просто поэкспериментировать - могу поделиться новым ревером и спаянной платой. Советы и замечания по прежнему принимаются - может я не туда копаю? Кстати, сам ревер установлен внутри комбика и совершенно не зависит от его громкости и вибрации корпуса. Как говорили выше. Опробовано на практике. Звук, да - как из консервной банки. Но я еще пока не занимался настройкой схемы и самим ревером.
    • Тут ещё какая штука- сечение от диаметра имеет квадратичную зависимость. Увеличение диаметра в 2 раза даёт увеличение сечения в 4. Поэтому ошибка получается очень большая.  ПЕРЕСЧЁТ ДИАМЕТРА ПРОВОДА НА ПОПЕРЕЧНОЕ СЕЧЕНИЕ.xls
    • Хорошо, если вам хочется называть проценты попугайчиками, то пожалуйста. Но, хотелось бы спросить. Вы всё-таки понимаете разницу между измерением напряжения 1 В с точностью +-0,1% и измерением отношения напряжений Х В и 0,5Х В с такой же точностью? 
×
×
  • Создать...