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

Просто_Светодиод

Привет всем... Который час бьюсь головой об клавиатуру, МК STM32F103RBT6, среда CoIDE просто пытаюсь поморгать светодиодом

на новом для меня МК. Вродь все правильно настраиваю. Итог ноль. Ничего не моргает.

Лезу в даташит по этому МК - нифига не найду, на котором пине висят светодиоды (Если можно, ткните носом, где они)

Ну или, пожалуйста, подскажите мне, ламеру, может, я что-то пропускаю????

 

Сразу скажу, что задержки поставлены наитупые для простоты. Знаю, что лучше таймерами. В отладке тоже делалось - ноль эффекта.

 

И если можно, ткните, пожалуйста носом, где и в каком мануале пины смотреть.

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

int main(void)
{
    SystemInit();
    GPIO_InitTypeDef  GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
    GPIO_StructInit(&GPIO_InitStructure);
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_SetBits(GPIOC, GPIO_Pin_13);


    volatile  int i = 0;
    while(1)
    {
        for(i=0; i< 10000; i++);
        GPIO_SetBits(GPIOC, GPIO_Pin_13);
        for(i=0; i< 10000; i++);
        GPIO_ResetBits(GPIOC, GPIO_Pin_13);
    }
}

Поделиться сообщением


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

Лезу в даташит по этому МК - нифига не найду, на котором пине висят светодиоды (Если можно, ткните носом, где они)

Кто же лучше Вас может знать, где они висят? :cranky:

Поделиться сообщением


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

Кто же лучше Вас может знать, где они висят? :cranky:

Имею ввиду, которые в самой платке находятся. Плата NUCLEO-F103RB

Поделиться сообщением


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

Вызов функции GPIO_StructInit(), по моему мнению,

нужно делать до инициализации конкретного пина,

дабы сбросить неиспользуемые поля структуры в начальное состояние.

А у Вас этот вызов выполняется после, что приводит к неверным настройкам пина.

Поделиться сообщением


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

Вызов функции GPIO_StructInit(), по моему мнению,

нужно делать до инициализации конкретного пина,

дабы сбросить неиспользуемые поля структуры в начальное состояние.

А у Вас этот вызов выполняется после, что приводит к неверным настройкам пина.

 

Не помогло(

 

Поделиться сообщением


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

где и в каком мануале пины смотреть.

stm32f103tb.pdf

RM0008.pdf

И на отладочную плату мануал, есс-но: http://files.amperka.ru/datasheets/nucleo-usermanual.pdf

Поделиться сообщением


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

stm32f103tb.pdf

RM0008.pdf

И на отладочную плату мануал, есс-но: http://files.amperka.ru/datasheets/nucleo-usermanual.pdf

Спасибо большое) нашлись мои пины.... Правда, как-то непонятно написано. Сигнал D13, а вывод PA5 ИЛИ PB13( Но мои попытки подергать и тем и другим не увенчались успехом(

Поделиться сообщением


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

попытки подергать и тем и другим не увенчались успехом(
Так надо в отладчике регистры посмотреть - правильно ли порт настроен, тактирование включено, нет.

 

Поделиться сообщением


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

дело не в этом, но в будущем

for(i=0; i< 10000; i++);

лучше заменить на volatile int i и далее. иначе мигать начнет мегагерцами, сколько бы сотен тысяч вы в условии цикла не написали

Поделиться сообщением


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

Возможно, в настройках проекта что-то не то накрутили.

Покажите исправленный код для PA5 (на нём висит светодиод)

 

Гуру-эмбеддеры меня сейчас заклюют, но я бы советовал скачать CubeMX, там выбрать нужную отладочную плату. Останется только сгенерить проект и добавить цикл с переключением в main ().

ИМХО, это самый простой и быстрый способ для новичка.

Поделиться сообщением


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

Возможно, в настройках проекта что-то не то накрутили.

Покажите исправленный код для PA5 (на нём висит светодиод)

 

Гуру-эмбеддеры меня сейчас заклюют, но я бы советовал скачать CubeMX, там выбрать нужную отладочную плату. Останется только сгенерить проект и добавить цикл с переключением в main ().

ИМХО, это самый простой и быстрый способ для новичка.

чего тут клевать то? постоянно пользую

Поделиться сообщением


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

Сигнал D13, а вывод PA5 ИЛИ PB13( Но мои попытки подергать и тем и другим не увенчались успехом(

А вывод смотреть в таблицах, как и написано. В вашем случае Table 12, сигнал D13 соответствует PA5.

 

Для начала рекомендую просто зажечь светодиод, без всяких SystemInit(). И выше совершенно верно указали,

что вызов GPIO_StructInit() уничтожит содержимое ранее заполненных полей структуры.

Поделиться сообщением


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

СПАСИБО большое всем) Дело было в моей невнимательности. Вывод PA5 отлично сработал, просто нужно было убрать совсем StructInit() и SystemInit() и все заработало. Эхх(... Можно закрыть топик

Поделиться сообщением


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

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...