Stm32F3discovery

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Stm32F3discovery

Сообщение Jebocom »

Доброго времени суток!
Давно прикупил себе Stm32F3discovery, но так и не начал изучать ее. А вот сейчас возникла необходимость подать на одну деталюшку меандр. Из доступного только эта плата. Когда-то возился с AVR-ми и немного ориентируюсь в коде. Нашел в интернете замечательный пример работы со светодиодами на данной платке и интуитивно переделал код автора статьи под свои нужды. Меандр то я на выходе получил, но почему-то он нестабилен (теряет красивую форму) и амлитудой всего 0.4 вольта. Я ожидал всеже получить 3.3 вольта на выходе и не очень понимаю почему так получилось. Объясните пожалуйста как поправить код, чтоб получить четкий 3.3 вольтовый меандр на выходе.

Код: Выделить всё

/******************************************************/
#include "stm32f30x_gpio.h"
#include "stm32f30x_rcc.h"
#include "stm32f30x.h"
/******************************************************/

/******************************************************/
#define DELAY_TIME             5000

/******************************************************/
GPIO_InitTypeDef gpio;
unsigned int i;
/******************************************************/

/******************************************************/
void simpleDelay(unsigned int delayTime)
{
    for (i = 0; i < delayTime; i++);
}
 
/******************************************************/

/******************************************************/
void initAll()
{
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);
 
    gpio.GPIO_Mode = GPIO_Mode_OUT;
    gpio.GPIO_Pin = GPIO_Pin_0;
    GPIO_Init(GPIOE, &gpio);
}
/******************************************************/

/******************************************************/
int main()
{
    initAll();
    while(1)
    {
   
   GPIO_SetBits(GPIOE, GPIO_Pin_0);
   simpleDelay(DELAY_TIME);
 
   GPIO_ResetBits(GPIOE, GPIO_Pin_0);
   simpleDelay(DELAY_TIME);
   
    }
}

/******************************************************/
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

Re: Stm32F3discovery

Сообщение Oxford »

10 гц тоже 0.4V? Замеры на голых ногах ничто не подключено?
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Re: Stm32F3discovery

Сообщение Jebocom »

[uquote="Oxford",url="/forum/viewtopic.php?p=3749170#p3749170"]10 гц тоже 0.4V? Замеры на голых ногах ничто не подключено?[/uquote]
Ничего не подключено, пустая плата. Смотрел осциллографом С1-65А.
Тихий демон
Родился
Сообщения: 17
Зарегистрирован: Ср ноя 04, 2009 12:49:25
Откуда: Урал

Re: Stm32F3discovery

Сообщение Тихий демон »

gpio.GPIO_Mode = GPIO_Mode_Out_PP;
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Re: Stm32F3discovery

Сообщение Jebocom »

[uquote="Тихий демон",url="/forum/viewtopic.php?p=3749578#p3749578"]gpio.GPIO_Mode = GPIO_Mode_Out_PP;[/uquote]
Попробовал. Выдает ошибку "identifier "GPIO_Mode_OUT_PP" is undefined".
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32F3discovery

Сообщение Мурик »

Код: Выделить всё

void initAll()
{
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);
    gpio.GPIO_Pin = GPIO_Pin_0;
    gpio.GPIO_Mode = GPIO_Mode_OUT;
    gpio.GPIO_OType = GPIO_OType_PP;
    gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
    gpio.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOE, &gpio);
}
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Re: Stm32F3discovery

Сообщение Jebocom »

Мурик, попробовал. Ошибок нет, но импульсы по 0.4-0.5 вольта.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Stm32F3discovery

Сообщение Мурик »

Попробуйте другой выход. PE0 подключен к выходу прерывания от гироскопа.
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Re: Stm32F3discovery

Сообщение Jebocom »

[uquote="Мурик",url="/forum/viewtopic.php?p=3749672#p3749672"]Попробуйте другой выход. PE0 подключен к выходу прерывания от гироскопа.[/uquote]
Пробовал PE1 и PE5. Результат тот же. 0.4-0.5 вольт меандр на выходе.
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Re: Stm32F3discovery

Сообщение BlackKilkennyCat »

Pe5 и Pe1 тоже используются, зачем было надо их пробовать?

en.DM00063382.pdf
(2.48 МБ) 317 скачиваний

Пункт 6.12 Extension connectors страница 22 - смотрите и берите свободный и проверяйте по даташиту, что он может работать в пуш-пулл.
Меня здесь больше нет
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Re: Stm32F3discovery

Сообщение Jebocom »

[uquote="BlackKilkennyCat",url="/forum/viewtopic.php?p=3749792#p3749792"]Pe5 и Pe1 тоже используются, зачем было надо их пробовать?

en.DM00063382.pdf

Пункт 6.12 Extension connectors страница 22 - смотрите и берите свободный и проверяйте по даташиту, что он может работать в пуш-пулл.[/uquote]

Спасибо! По даташиту нашел свободный вывод PE6 и импульсы стали 3-вольтовыми. Но не проходит и минуты как генерация импульсов почему-то прекращается. Не могу понять почему...
Я извиняюсь конечно, но я не знаю как проверить работает ли порт в пуш пул режиме.
a797945
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Re: Stm32F3discovery

Сообщение a797945 »

жесть :dont_know:
ну ладно я неуч, но почему грамотные спокойно смотрят на
" for (...)" - задержку и это на "не бедном" камне.
у меня нет такого камня - выложил бы инит на таймер.

ядро спит таймер идет :)
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Re: Stm32F3discovery

Сообщение BlackKilkennyCat »

a797945, ну, я код и не смотрел, он на напряжение вряд ли влиял )

как проверить работает ли порт в пуш пул режим

как вариант: скачиваете даташит на мк и смотрите в нем описание функционала портов.
Вариант удобнее: скачиваете STM32CubeMX и создаете проект на основе именно Вашей дискавери-плате

Изображение
Изображение
Последний раз редактировалось BlackKilkennyCat Чт дек 05, 2019 19:49:04, всего редактировалось 2 раза.
Меня здесь больше нет
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: Stm32F3discovery

Сообщение 240265 »

BlackKilkennyCat, Щас тебя "программисты" порвут :))
IVL ex UA6PJ
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Re: Stm32F3discovery

Сообщение BlackKilkennyCat »

240265, а не страшно. видали мы этих программистов, к каждой фигне интерфейсы пишущих :)
Меня здесь больше нет
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Re: Stm32F3discovery

Сообщение Jebocom »

BlackKilkennyCat, спасибо! С амплитудой разобрался. Но попутно возникла еще проблемка. Почему то где-то через 45 секунд у меня гаснет светодиод LD1(power) и пропадает генерация. Не могу понять почему так происходит...
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Re: Stm32F3discovery

Сообщение BlackKilkennyCat »

Jebocom, мне сложно ответить не видя полного проекта.
а вообще, если всё это дело запитывается от усб и гаснет именно светодиод PWR, то логично бы проверить мультиметром наличие напряжения
Меня здесь больше нет
Jebocom
Встал на лапы
Сообщения: 99
Зарегистрирован: Пт ноя 19, 2010 21:08:56
Откуда: РБ-->Мозырь

Re: Stm32F3discovery

Сообщение Jebocom »

Да уж :? ...Очевидные вещи иногда сложно заметить. Я гонял авторскую программу (с которой сдирал код), запитываясь от USB нетбука и генерация на светодиодах не прекращалась. После того как я переделал программу под свои нужды я запитался от powerbank и генерация прекращалась через 30 секунд (я засек). Судя по всему powerbank оценивал потребление тока и наверное маленькую платку он за потребителя не считал и отключался через 30 секунд. А я было подумал что это программное... Спасибо BlackKilkennyCat за меткие советы и помощь!
BlackKilkennyCat
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Re: Stm32F3discovery

Сообщение BlackKilkennyCat »

Jebocom, это что... я недавно запитался от усб и делаю простенькую штуку - анализирую положение и выводы потенциометра (простенький прибор для автомобильной диагностики). А показания скачут как угорелые. Думаю "ну ладно, мож дорожка протерлась или еще что, потом проверю", ну и как-то забылось... собрал, запитал от батарейки - всё идеально.
Оказалось, что наводки с усб были такие, что сбивали опорное напряжение, которое я же собственными руками указал брать с основного питания... :cry:
Меня здесь больше нет
Ответить

Вернуться в «ARM»