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

 
 
 
Reply to this topicStart new topic
> STM32F373 GPIO, GPIO не работает
electrotehnik
сообщение Jun 4 2015, 07:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Добрый день

Не работают GPIO. Все перепроверил, использую CMSIS и Standart Peripherial Library, вот код:

Код
#include "stm32f37x.h"
#include "stm32f37x_gpio.h"

void InitPort(void)
{
   GPIO_InitTypeDef  GPIO_InitStructure;
  
   /* Разрешить тактирование GPIOx */
   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
  
   /* Конфигурирование ножки PB7, туда подключен светодиод */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
   GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
   GPIO_Init(GPIOB, &GPIO_InitStructure);
   return;
}

int main(void)
{
    InitPort();
    GPIO_SetBits(GPIOB, GPIO_Pin_7); //светодиод горит
  
    while (1)
  {
  }
}


Может чего-то не хватает? Подскажите, ткните пальцем пожалуйста. На других MCU Cortex-M4 такой код работает... вот и думаю, может проц запитал не до конца, но он ведь видится, прошивка льется и читается ST-Link.
Программирую в Keil.
Go to the top of the page
 
+Quote Post
adnega
сообщение Jun 4 2015, 08:34
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Самое существенное отличие, что теперь GPIO не попадает в регион bitband.
Go to the top of the page
 
+Quote Post
electrotehnik
сообщение Jun 4 2015, 12:12
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Цитата(adnega @ Jun 4 2015, 08:34) *
Самое существенное отличие, что теперь GPIO не попадает в регион bitband.


Смотрел example на STM32F37x - там нет отличий по инициализации портов, все как Cortex-M4. Вообще уже не знаю что делать.
Может кварцевый резонатор ерундить, если операции с чтением и записью прошивки проходят всегда успешно?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jun 4 2015, 12:47
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(electrotehnik @ Jun 4 2015, 15:12) *
Смотрел example на STM32F37x - там нет отличий по инициализации портов, все как Cortex-M4. Вообще уже не знаю что делать.
Может кварцевый резонатор ерундить, если операции с чтением и записью прошивки проходят всегда успешно?

CUBE не пробовали?
Go to the top of the page
 
+Quote Post
electrotehnik
сообщение Jun 4 2015, 13:19
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Цитата(Tanya @ Jun 4 2015, 12:47) *
CUBE не пробовали?


Cube громоздкая тема. Но ради проверки работоспособности схемы попробовать можно..
Go to the top of the page
 
+Quote Post
electrotehnik
сообщение Jun 18 2015, 10:06
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Попробовал Cube - все заработало, схема значит рабочая. Но Cube использует HAL драйверы.
Я же привык кодить на Standart Peripherial Library (SPL), судя по тому, что код рабочий, затык у меня в недоподключенной библиотеке SPL.
Дерево файлов моего проекта (кроме всех файлов в папке MDS-ARM) можно посмотреть во вложении к этому посту.




По непонятным для меня причинам код из первого поста заработал сам собой. wacko.gif

По осциллографу заметил, что код-то заработал, да не на той частоте, на какой нужно.
При этом работает только если подключать программатор SWD. Если подавать питание без подключенного программатора, то проц не исполняет код вообще. Сдается мне в тактировании проблема.

Сообщение отредактировал electrotehnik - Jun 18 2015, 09:24
Прикрепленные файлы
Прикрепленный файл  CortexM4_F37x.zip ( 348.14 килобайт ) Кол-во скачиваний: 9
 
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 18 2015, 10:14
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(electrotehnik @ Jun 18 2015, 13:06) *
Сдается мне в тактировании проблема.

А, может, в сбросе? Вывод NRST.
Go to the top of the page
 
+Quote Post
electrotehnik
сообщение Jun 18 2015, 11:43
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Подскажите, пожалуйста, как узнать текущую частоту тактирования проца (где прочитать)? Вывод MCO конфигурировать не вариант, так как осциллограф максимум воспримет 30 МГц. Используются настройки SPL по умолчанию. Везде в статьях по STM32 пишут, что по умолчанию на шине APB1 тактовая частота 24МГц.
Но мне удалось получить длину импульсов 1 секунда только когда поставил следующие значения в инициализации:

Код
void InitTimer(void)
{
    TIM_TimeBaseInitTypeDef base_timer;
        TIM_TimeBaseStructInit(&base_timer);
    
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
    
    base_timer.TIM_Prescaler = 36000 - 1;
    base_timer.TIM_Period = 2000;
    TIM_TimeBaseInit(TIM6, &base_timer);
    
    TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);
    TIM_Cmd(TIM6, ENABLE);
    
    NVIC_EnableIRQ(TIM6_DAC1_IRQn);
}


Сообщение отредактировал electrotehnik - Jun 18 2015, 11:44
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jun 18 2015, 19:04
Сообщение #9


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

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



Цитата(electrotehnik @ Jun 18 2015, 14:43) *
Подскажите, пожалуйста, как узнать текущую частоту тактирования проца (где прочитать)?


Банальный ответ - отладчиком прочитать регистры тактирования (RCC_*), выписать на бумажку, и по reference manual'у разобрать их на битики. Вместе с тщательным курением этого мануала занимает полчаса.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

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

 


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


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