Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Stm32F3discovery

Ср дек 04, 2019 17:43:17

Доброго времени суток!
Давно прикупил себе 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);
   
    }
}

/******************************************************/

Re: Stm32F3discovery

Ср дек 04, 2019 17:49:38

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

Re: Stm32F3discovery

Ср дек 04, 2019 18:02:07

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

Ничего не подключено, пустая плата. Смотрел осциллографом С1-65А.

Re: Stm32F3discovery

Чт дек 05, 2019 12:37:23

gpio.GPIO_Mode = GPIO_Mode_Out_PP;

Re: Stm32F3discovery

Чт дек 05, 2019 14:26:05

gpio.GPIO_Mode = GPIO_Mode_Out_PP;

Попробовал. Выдает ошибку "identifier "GPIO_Mode_OUT_PP" is undefined".

Re: Stm32F3discovery

Чт дек 05, 2019 14:32:04

Код:
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);
}

Re: Stm32F3discovery

Чт дек 05, 2019 14:41:58

Мурик, попробовал. Ошибок нет, но импульсы по 0.4-0.5 вольта.

Re: Stm32F3discovery

Чт дек 05, 2019 14:51:58

Попробуйте другой выход. PE0 подключен к выходу прерывания от гироскопа.

Re: Stm32F3discovery

Чт дек 05, 2019 16:45:07

Попробуйте другой выход. PE0 подключен к выходу прерывания от гироскопа.

Пробовал PE1 и PE5. Результат тот же. 0.4-0.5 вольт меандр на выходе.

Re: Stm32F3discovery

Чт дек 05, 2019 17:18:06

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

en.DM00063382.pdf
(2.48 MiB) Скачиваний: 25

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

Re: Stm32F3discovery

Чт дек 05, 2019 18:35:12

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

en.DM00063382.pdf

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


Спасибо! По даташиту нашел свободный вывод PE6 и импульсы стали 3-вольтовыми. Но не проходит и минуты как генерация импульсов почему-то прекращается. Не могу понять почему...
Я извиняюсь конечно, но я не знаю как проверить работает ли порт в пуш пул режиме.

Re: Stm32F3discovery

Чт дек 05, 2019 19:10:43

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

ядро спит таймер идет :)

Re: Stm32F3discovery

Чт дек 05, 2019 19:31:29

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

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

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

Изображение
Изображение
Последний раз редактировалось BlackKilkennyCat Чт дек 05, 2019 19:49:04, всего редактировалось 2 раз(а).

Re: Stm32F3discovery

Чт дек 05, 2019 19:45:35

BlackKilkennyCat, Щас тебя "программисты" порвут :))

Re: Stm32F3discovery

Чт дек 05, 2019 19:48:32

240265, а не страшно. видали мы этих программистов, к каждой фигне интерфейсы пишущих :)

Re: Stm32F3discovery

Чт дек 05, 2019 20:06:01

BlackKilkennyCat, спасибо! С амплитудой разобрался. Но попутно возникла еще проблемка. Почему то где-то через 45 секунд у меня гаснет светодиод LD1(power) и пропадает генерация. Не могу понять почему так происходит...

Re: Stm32F3discovery

Чт дек 05, 2019 20:13:41

Jebocom, мне сложно ответить не видя полного проекта.
а вообще, если всё это дело запитывается от усб и гаснет именно светодиод PWR, то логично бы проверить мультиметром наличие напряжения

Re: Stm32F3discovery

Чт дек 05, 2019 20:38:29

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

Re: Stm32F3discovery

Пт дек 06, 2019 02:40:15

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