Добрый вечер. Пока потянуло немного на писанину напишу ещё один урок.
В данном уроке мы сконфигурируем наш микроконтроллер расположенный на
плате Discovery, и помигаем светодиодом нажимая на кнопку.
Так как в одной записи нельзя вставить более 20 картинок. Урок будет разбит на части.
Итак. на нашей плате расположены 4 светодиода подключённые анодами к ножкам PD12,PD13,PD14,PD15
и кнопка подключена к выводу PA0. Причём кнопка при нажатии замыкается на +3.3В (напряжение питания).
Итак открываем программу STM32Cube MX и выбираем наш процессор который у нас есть. Далее будут картинки в последовательности и немного где нужно описания. Поэтому если где то что то не подписано, то просто действуйте согласно картинкам
открываем КубеМХ
Нажимаем — новый проект
выбираем в списке нужный нам контроллер
поваляется наш процессоор с подписанными ножками. Справа, у нас расположена вся
периферия процессора. А нажимая на ножки на картинке, мы будем выбирать
что это ножка должна делать.
Итак первым делаем настраиваем ножки PD12,PD13,PD14,PD15 на выход GPIO_Output
Далее нам нужно настроить ножку PA0 на вход -выбираем GPIO_Input
У нас получается вот такая картинка
тут у нас всё .
далее вверху переходим на вкладку Clock_Configuration, Она нам не нужна на данном этапе, просто посмотрите на схемку. Это система тактирования нашего процессора. В данном случае у нас идёт тактирование от внутреннего источника тактирования — HSI.
Далее переходим на вкладку Configuration
В этой вкладке настраиваются все параметры прерываний, таймеров, портов и так далее. В этом уроке нам нужно просто настроить порты ввода-вывода.
первым
настроим порт вводка PA0. Настроим его безо всяких подтяжек, так как
все подтяжки к питанию и массе у нас расположены в самой схеме.
Далее настраиваем порты вывода к которым подключены светодиоды.
В этом случае мы должны в выпадающем списке GPIO Pull_UP\PulL_Down — выбираем Pull_UP, так как нам нужно то на светодиод подавать напряжение, они то анодами подключены к контроллеру. Настраиваем так все наши 4 порта вывода.
Далее,
ради интереса можем зайти в вкладку NVIC и посмотреть — в ней мы будем
настраивать прерывания и т.д. в следующих проектах.
ну
и вверху можем нажать на последнюю вкладку — Power Consumption
Calculator. В этой вкладке мы можем рассчитывать параметры
энергопотребления и т.д. Она нам пока не интересна.
Итак,
далее мы должны настроить параметры экспорта нашего проекта. Вверху
нажимаем кнопочку Project Settings и попадаем в вкладку настройки
параметров
Выбираем экспорт в формате TrueStudio (кому нужно можно выбрать экспорт в Keil либо Iar)
Далее переходим в вкладку Code Generator, и в ней выбираем Copy only necesary library files
Так как в одной записи нельзя вставить более 20 картинок. Урок будет разбит на части.
Итак. на нашей плате расположены 4 светодиода подключённые анодами к ножкам PD12,PD13,PD14,PD15
и кнопка подключена к выводу PA0. Причём кнопка при нажатии замыкается на +3.3В (напряжение питания).
Итак открываем программу STM32Cube MX и выбираем наш процессор который у нас есть. Далее будут картинки в последовательности и немного где нужно описания. Поэтому если где то что то не подписано, то просто действуйте согласно картинкам
открываем КубеМХ
Нажимаем — новый проект
выбираем в списке нужный нам контроллер
Итак первым делаем настраиваем ножки PD12,PD13,PD14,PD15 на выход GPIO_Output
далее вверху переходим на вкладку Clock_Configuration, Она нам не нужна на данном этапе, просто посмотрите на схемку. Это система тактирования нашего процессора. В данном случае у нас идёт тактирование от внутреннего источника тактирования — HSI.
В этой вкладке настраиваются все параметры прерываний, таймеров, портов и так далее. В этом уроке нам нужно просто настроить порты ввода-вывода.
В этом случае мы должны в выпадающем списке GPIO Pull_UP\PulL_Down — выбираем Pull_UP, так как нам нужно то на светодиод подавать напряжение, они то анодами подключены к контроллеру. Настраиваем так все наши 4 порта вывода.
Далее переходим в вкладку Code Generator, и в ней выбираем Copy only necesary library files
Ну собственно теперь нам осталось дать имя проекту и сделать экспорт.
По окончанию экспорта, выскочит сообщение в котором мы можем открыть
папку с нашим с генерированным проектом.На этом с CubeMX закончили. Переходим к среде разработки Coocox (Кокос в простонародье)))
Открываем Кокос
далее вверху выбираем — создать новый проект — Create New Project
Далее выбираем CHIP (ведь мы будем работать с процессором)
Далее в списке выбираем нужный нам процессор. В моём случает это STM2F407VG6T
После
этого ствавим галчку напртив CMSIS BOOT. Вместе с ней установится
галочка и напротив M4 CMSIS Core — вот её нам нужно снять.
Далее
в левой части, нам нужно удалить два файла которые начинаются на system
и также после этого удаляем файл main.c (он нам не нужен)
После этого, нам нужно скопировать папки сгенерированные нашим CubeMX в папку с проектом Кокоса. Копируем три папки.
И далее выделяем эти три папки и перетягиваем их в Кокос (добавляем в проект). Стрелочкой указано куда.
Получаем вот такой вид файлов нашего проекта
Далее начинаем раскрывать наш список файлов в папке
Driver->CMSIS->Device->ST->STM32f4xx->Source->Templates-gcc
и удаляем файл startup_.
далее сворачиваем пару папок и переходим вот по такому пути
Driver->CMSIS->Device->ST->STM32f4xx->Include и открываем файл отмеченный на картике указателем мыши. В нашем основном окне этот файл откроется. Листаем вниз и ищем наш процессор, и выделяем его как на картинке и нажимаем копировать — это нужно чтобы добавить это название в конфигурацию проекта
Далее, нажимаем на корневой файл проекта правой кнопкой мыши и выбираем Configuration
У нас откроется вот такое окно
Нажимаем в правой части ADD и добавляем скопированое значение в поле как на картинке
Получаем пот такой вид
Открываем Кокос
Driver->CMSIS->Device->ST->STM32f4xx->Source->Templates-gcc
и удаляем файл startup_.
Driver->CMSIS->Device->ST->STM32f4xx->Include и открываем файл отмеченный на картике указателем мыши. В нашем основном окне этот файл откроется. Листаем вниз и ищем наш процессор, и выделяем его как на картинке и нажимаем копировать — это нужно чтобы добавить это название в конфигурацию проекта
Итак далее переходим на вкладку LINK, и в ней выбираем в поле Options — Use BASE C Library
ну
вот собственно и всё. можем открывать фал main.c и нажать кнопочку F7, и
пронаблюдать сборку проекта без ошибок. После этого делаем тройное
сальто назад, двойное вперёд, бубин откладываем и ставим чайник)))
Ну чтож, давайте набросаем пару строк кода для того чтобы помигать нашим светодиодом
Создаём переменную
uint8_t button;
и пишем вот такие строчки кода
ну и подключаем нашу плату к компьютеру и нажимаем Download Code to Flash
Ну вот собственно и конец урока 1 в котором мы от начала до конца создали проект и помигали светодиодом.
Ну — и как всегда жмём палец вверх и ждём новых уроков)))
Создаём переменную
uint8_t button;
и пишем вот такие строчки кода
а кто хочет гирлянду впишите вот такой код — светодиодиики будут бегать по кругуbutton = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);
if (button == 0)
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);
}
else
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);
}
if (button == 0)
{}
else
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15, GPIO_PIN_SET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15, GPIO_PIN_RESET);
HAL_Delay(100);
}
ну и подключаем нашу плату к компьютеру и нажимаем Download Code to Flash
Ну — и как всегда жмём палец вверх и ждём новых уроков)))
Спасибо большое! очень помогло
ОтветитьУдалитьСпасибо, помогло сделать сделать первую прогу.
ОтветитьУдалитьа у меня кокос новее версии не разберусь. вроде все так делаю, а компиляция не проходит
ОтветитьУдалитьСпасибо большое ! Нихуя не работает
ОтветитьУдалитьспасибо, мне тоже помогло
ОтветитьУдалитьСпасибо, помогло.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьУстановил Кокос, тест компилируется и работает, но
ОтветитьУдалитьредактор кокоса "не видит" типы переменных с99
uint8_t, uint16_t и т.п., т.е. он красит их как проблемный синтаксис.
Станартные типы: char, int и пр., видит....
Кто нибудь сталкивался с этим? Как боролись?
Вам поможет include
ОтветитьУдалитьinclude <stdint.h>
ОтветитьУдалитьВозможность кредита, предложенная мистером Бенджамином, которая спасла мою семью от финансового рабства {lfdsloans@outlook.com}
ОтветитьУдалитьПривет всем, я одинокая мама Путри Адиратнаа из Джакарты, я хотел бы поделиться этим замечательным свидетельством о том, как я получил кредит от мистера Бенджамина, когда мы были изгнаны из нашего дома, когда я больше не мог оплачивать свои счета, после меня обманывали различные компании в Интернете и отказывали в кредите от моего банка и другого кредитного союза, который я посетил. Мои дети были усыновлены приемной семьей, я был один на улице. В тот день, когда я позорно зашёл к старому школьному товарищу, который представил меня Дейзи Морин. Сначала я сказал ей, что я не готов больше рисковать запрашивать кредит онлайн, но она заверила меня, что я получу от них кредит. Во-вторых, из-за моей бездомности мне пришлось пройти испытание и подать заявку на получение кредита, к счастью для меня, я получил кредит в размере 80 000 долларов США от мистера Бенджамина. Я счастлив, что рискнул и подал заявку на кредит. Мои дети были возвращены мне, и теперь у меня есть собственный дом и собственный бизнес. Спасибо и благодарность мистеру Бенджамину за то, что он дал мне смысл жизни, когда я потерял всякую надежду. Если вы в настоящее время ищете помощь в кредите, вы можете связаться с ними по адресу: {lfdsloans@outlook.com WhatsApp + 1-989-394-3740
Самая практическая статья, которую я нашел. Спасибо огромное!
ОтветитьУдалитьCasino Poker - Play & Bonus - CasinoTopTOS
ОтветитьУдалитьCasino 일반인 후방 Poker is a casino type 파라오도메인 of poker site for everyone. You can find a wide range 룰렛사이트 of casino games 다이 사이 and live casino games that can be played at the 토토 사이트 직원 모집