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

 
 
 
Closed TopicStart new topic
> Просто_Светодиод
Ekka
сообщение Sep 10 2018, 13:58
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Привет всем... Который час бьюсь головой об клавиатуру, МК 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);
    }
}
Go to the top of the page
 
+Quote Post
Harvester
сообщение Sep 10 2018, 14:06
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(Ekka @ Sep 10 2018, 16:58) *
Лезу в даташит по этому МК - нифига не найду, на котором пине висят светодиоды (Если можно, ткните носом, где они)

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


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
Ekka
сообщение Sep 10 2018, 14:21
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Цитата(Harvester @ Sep 10 2018, 14:06) *
Кто же лучше Вас может знать, где они висят? cranky.gif

Имею ввиду, которые в самой платке находятся. Плата NUCLEO-F103RB
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Sep 10 2018, 14:33
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



Вызов функции GPIO_StructInit(), по моему мнению,
нужно делать до инициализации конкретного пина,
дабы сбросить неиспользуемые поля структуры в начальное состояние.
А у Вас этот вызов выполняется после, что приводит к неверным настройкам пина.
Go to the top of the page
 
+Quote Post
Ekka
сообщение Sep 10 2018, 14:47
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Цитата(ivan24190 @ Sep 10 2018, 14:33) *
Вызов функции GPIO_StructInit(), по моему мнению,
нужно делать до инициализации конкретного пина,
дабы сбросить неиспользуемые поля структуры в начальное состояние.
А у Вас этот вызов выполняется после, что приводит к неверным настройкам пина.


Не помогло(
Go to the top of the page
 
+Quote Post
wim
сообщение Sep 10 2018, 14:49
Сообщение #6


рядовой
******

Группа: Участник
Сообщений: 2 811
Регистрация: 21-08-06
Пользователь №: 19 713



Цитата(Ekka @ Sep 10 2018, 16:58) *
где и в каком мануале пины смотреть.

stm32f103tb.pdf
RM0008.pdf
И на отладочную плату мануал, есс-но: http://files.amperka.ru/datasheets/nucleo-usermanual.pdf
Go to the top of the page
 
+Quote Post
Ekka
сообщение Sep 10 2018, 14:59
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



Цитата(wim @ Sep 10 2018, 14:49) *
stm32f103tb.pdf
RM0008.pdf
И на отладочную плату мануал, есс-но: http://files.amperka.ru/datasheets/nucleo-usermanual.pdf
Спасибо большое) нашлись мои пины.... Правда, как-то непонятно написано. Сигнал D13, а вывод PA5 ИЛИ PB13( Но мои попытки подергать и тем и другим не увенчались успехом(
Go to the top of the page
 
+Quote Post
wim
сообщение Sep 10 2018, 15:33
Сообщение #8


рядовой
******

Группа: Участник
Сообщений: 2 811
Регистрация: 21-08-06
Пользователь №: 19 713



Цитата(Ekka @ Sep 10 2018, 17:59) *
попытки подергать и тем и другим не увенчались успехом(
Так надо в отладчике регистры посмотреть - правильно ли порт настроен, тактирование включено, нет.
Go to the top of the page
 
+Quote Post
DASM
сообщение Sep 10 2018, 15:45
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



дело не в этом, но в будущем
for(i=0; i< 10000; i++);
лучше заменить на volatile int i и далее. иначе мигать начнет мегагерцами, сколько бы сотен тысяч вы в условии цикла не написали
Go to the top of the page
 
+Quote Post
Corvus
сообщение Sep 10 2018, 15:50
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 24-04-08
Из: Зеленоград
Пользователь №: 37 056



Возможно, в настройках проекта что-то не то накрутили.
Покажите исправленный код для PA5 (на нём висит светодиод)

Гуру-эмбеддеры меня сейчас заклюют, но я бы советовал скачать CubeMX, там выбрать нужную отладочную плату. Останется только сгенерить проект и добавить цикл с переключением в main ().
ИМХО, это самый простой и быстрый способ для новичка.
Go to the top of the page
 
+Quote Post
DASM
сообщение Sep 10 2018, 16:01
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Corvus @ Sep 10 2018, 18:50) *
Возможно, в настройках проекта что-то не то накрутили.
Покажите исправленный код для PA5 (на нём висит светодиод)

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

чего тут клевать то? постоянно пользую
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 10 2018, 16:07
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Ekka @ Sep 10 2018, 17:59) *
Сигнал D13, а вывод PA5 ИЛИ PB13( Но мои попытки подергать и тем и другим не увенчались успехом(

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

Для начала рекомендую просто зажечь светодиод, без всяких SystemInit(). И выше совершенно верно указали,
что вызов GPIO_StructInit() уничтожит содержимое ранее заполненных полей структуры.
Go to the top of the page
 
+Quote Post
Ekka
сообщение Sep 10 2018, 19:48
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250



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

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

 


RSS Текстовая версия Сейчас: 16th April 2024 - 22:09
Рейтинг@Mail.ru


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