Ekka 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Привет всем... Который час бьюсь головой об клавиатуру, МК 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); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Лезу в даташит по этому МК - нифига не найду, на котором пине висят светодиоды (Если можно, ткните носом, где они) Кто же лучше Вас может знать, где они висят? :cranky: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ekka 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Кто же лучше Вас может знать, где они висят? :cranky: Имею ввиду, которые в самой платке находятся. Плата NUCLEO-F103RB Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan24190 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Вызов функции GPIO_StructInit(), по моему мнению, нужно делать до инициализации конкретного пина, дабы сбросить неиспользуемые поля структуры в начальное состояние. А у Вас этот вызов выполняется после, что приводит к неверным настройкам пина. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ekka 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Вызов функции GPIO_StructInit(), по моему мнению, нужно делать до инициализации конкретного пина, дабы сбросить неиспользуемые поля структуры в начальное состояние. А у Вас этот вызов выполняется после, что приводит к неверным настройкам пина. Не помогло( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wim 6 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба где и в каком мануале пины смотреть. stm32f103tb.pdf RM0008.pdf И на отладочную плату мануал, есс-но: http://files.amperka.ru/datasheets/nucleo-usermanual.pdf Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ekka 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба stm32f103tb.pdf RM0008.pdf И на отладочную плату мануал, есс-но: http://files.amperka.ru/datasheets/nucleo-usermanual.pdf Спасибо большое) нашлись мои пины.... Правда, как-то непонятно написано. Сигнал D13, а вывод PA5 ИЛИ PB13( Но мои попытки подергать и тем и другим не увенчались успехом( Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wim 6 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба попытки подергать и тем и другим не увенчались успехом(Так надо в отладчике регистры посмотреть - правильно ли порт настроен, тактирование включено, нет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба дело не в этом, но в будущем for(i=0; i< 10000; i++); лучше заменить на volatile int i и далее. иначе мигать начнет мегагерцами, сколько бы сотен тысяч вы в условии цикла не написали Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvus 1 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Возможно, в настройках проекта что-то не то накрутили. Покажите исправленный код для PA5 (на нём висит светодиод) Гуру-эмбеддеры меня сейчас заклюют, но я бы советовал скачать CubeMX, там выбрать нужную отладочную плату. Останется только сгенерить проект и добавить цикл с переключением в main (). ИМХО, это самый простой и быстрый способ для новичка. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Возможно, в настройках проекта что-то не то накрутили. Покажите исправленный код для PA5 (на нём висит светодиод) Гуру-эмбеддеры меня сейчас заклюют, но я бы советовал скачать CubeMX, там выбрать нужную отладочную плату. Останется только сгенерить проект и добавить цикл с переключением в main (). ИМХО, это самый простой и быстрый способ для новичка. чего тут клевать то? постоянно пользую Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 56 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба Сигнал D13, а вывод PA5 ИЛИ PB13( Но мои попытки подергать и тем и другим не увенчались успехом( А вывод смотреть в таблицах, как и написано. В вашем случае Table 12, сигнал D13 соответствует PA5. Для начала рекомендую просто зажечь светодиод, без всяких SystemInit(). И выше совершенно верно указали, что вызов GPIO_StructInit() уничтожит содержимое ранее заполненных полей структуры. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ekka 0 10 сентября, 2018 Опубликовано 10 сентября, 2018 · Жалоба СПАСИБО большое всем) Дело было в моей невнимательности. Вывод PA5 отлично сработал, просто нужно было убрать совсем StructInit() и SystemInit() и все заработало. Эхх(... Можно закрыть топик Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться