реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> stm32f405rg6 странная форма импульсов
Reystlin
сообщение Mar 25 2016, 20:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



Доброго времени суток ув. форумчане
продолжаю освоение stm32 и столкнулся с проблемой, которую не могу объяснить.
инициализирую порт вот таким образом
Код
      GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

вывожу в порт вот так
CODE
#define LO_lcd_rst GPIO_ResetBits(GPIOB, GPIO_Pin_14)
#define HI_lcd_rst GPIO_SetBits(GPIOB, GPIO_Pin_14)

#define LO_lcd_cs GPIO_ResetBits(GPIOB, GPIO_Pin_12)
#define HI_lcd_cs GPIO_SetBits(GPIOB, GPIO_Pin_12)

#define LO_mosi GPIO_ResetBits(GPIOB, GPIO_Pin_15)
#define HI_mosi GPIO_SetBits(GPIOB, GPIO_Pin_15)

#define LO_clk GPIO_ResetBits(GPIOB, GPIO_Pin_10)
#define HI_clk GPIO_SetBits(GPIOB, GPIO_Pin_10)

LO_clk;
HI_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<15) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<14) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<13) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<12) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<11) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<10) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<9) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<8) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
HI_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<7) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<6) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<5) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<4) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<3) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<2) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<1) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;

LO_clk;
(data & 1<<0) ? HI_mosi : LO_mosi;
swSpiDelay
HI_clk;



на выходах МК имею картину, что на фото в аттаче
в проекте используется FreeRTOS, случается, что импульсы становятся длинней и тогда амплитуда, до которой дорастает импульс выше, что видно на последнем импульсе на фото. нога висит в воздухе

Сообщение отредактировал IgorKossak - Mar 25 2016, 20:10
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 25 2016, 20:52
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Reystlin @ Mar 25 2016, 23:09) *
Код
      GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
....
нога висит в воздухе


чиссо как пример инициализации структуры

Код
    GPIO_StructInit(&GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;


(круглый)

Сообщение отредактировал kolobok0 - Mar 25 2016, 20:52
Go to the top of the page
 
+Quote Post
Reystlin
сообщение Mar 25 2016, 21:49
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 6-09-15
Пользователь №: 88 307



помогло, благодарюsm.gif
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Mar 29 2016, 09:44
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Да, в этих библиотеках надо обязательно инициализировать все поля структур-параметров. Иначе возможны разнообразнейшие приключения.
Тут, судя по всему, порт переключился в режим "открытый коллектор".


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Mar 29 2016, 12:15
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(esaulenka @ Mar 29 2016, 13:44) *
Да, в этих библиотеках надо обязательно инициализировать все поля структур-параметров. Иначе возможны разнообразнейшие приключения.
Тут, судя по всему, порт переключился в режим "открытый коллектор".

100%
открытый сток sm.gif
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 29 2016, 12:42
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(esaulenka @ Mar 29 2016, 12:44) *
Да, в этих библиотеках надо обязательно инициализировать все поля структур-параметров. Иначе возможны разнообразнейшие приключения.
Тут, судя по всему, порт переключился в режим "открытый коллектор".

Причём проверить режим порта, прочитав регистры, способны лишь полубоги, видимо laughing.gif
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Mar 29 2016, 17:15
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(scifi @ Mar 29 2016, 16:42) *
Причём проверить режим порта, прочитав регистры, способны лишь полубоги, видимо laughing.gif


Да ладно вам. Там много чего есть. Начинающим трудно разобраться.
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 29 2016, 17:34
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Tarbal @ Mar 29 2016, 20:15) *
Да ладно вам. Там много чего есть. Начинающим трудно разобраться.

Помнится, волею судеб первый МК был 80C166. Для начинающих тоже не сахар, наверное. Прочитал бумажный мануал от корки до корки, некоторые части дважды. Ничего, осилилось. Или это нынче не модно? Нужно за ручку и с поглаживанием по головке?
Go to the top of the page
 
+Quote Post
Alechek
сообщение Mar 30 2016, 04:17
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Нынче надо читать мануал и про HAL и про МК. Двойная работа..
Go to the top of the page
 
+Quote Post
niXto
сообщение Mar 30 2016, 16:57
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 24-06-09
Из: Беларусь
Пользователь №: 50 607



Нынче мануал на ф4 - это 1700 страниц
Плюс примерно столько же на само АРМ ядро
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 08:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016