Pull to refresh

STM32F0Discovery — Мигание светодиодом

Эта статья посвящена людям, которые только начинают знакомится с отладочными платами, а в особенности с STM32F0Discovery.

Вам может показаться что таких статей очень много, но именно для этой платы статей на русском практически нет, а на английском очень мало.

Для работы с платой нам понадобится:
1. Знания программирование на C
2. Среда для программирования CoIDE
3. Программа для прошивки ST-LINK/V2
4. Начальные знания работы с микроконтроллерами

И так что же это за плата...

image

STM32F0Discovery — отладочная плата из серии STM32 работающая на микроконтроллере STM32F051R8T6.
Вот краткая таблица характеристик:

Установленный контроллер: STM32F051R8T6 (АЦП 12 бит, ЦАП 12 бит, 2 UART, 2 I2C, 2 SPI, работоспособность до 48 МГц)
Архитектура ядра: STM32
Семейство: STM32F0 Cortex-M0
Питание: от USB или внешнего источника питания 5 В или 3,3 В
Особенности: встроенный JTAG программатор, две сенсорные кнопка, четыре светодиода, программатор/отладчик ST-Link/V2
Производитель: STMicroelectronics
Примечание: EVAL KIT, STM32F0, WITH ST-LINK/V2

Ну не буду нудить по поводу устройства этой платы, так что перейдем к сути.

По установке CoIDE тоже рассказывать сильно не буду так, как статей предостаточно и там ни чего сложного нет. Просто берем и устанавливаем.

Про ST-LINK/V2 расскажу. Вот ссылка для скачивания. Там ни чего сложного нет. Так же как и CoIDE берем и спокойно устанавливаем.

Итак, программирование...

Для начала нам нужно объявить библиотеку для этой платы.

#include "stm32f0xx.h"


Это стандартная библиотека микроконтроллера STM32F051R8T6. В ней описаны стандартные функции. Например тактирование порта и многие другие.

После в главной функции мы должны включить тактирование порта GPIOC и настроить ноги как выходы.

RCC->AHBENR |= RCC_AHBENR_GPIOCEN;
GPIOC->MODER |= (GPIO_MODER_MODER8_0 | GPIO_MODER_MODER9_0) ;


Да мы настраиваем PC8 и PC9 так, как на них находятся два светодиода.

Теперь заберем самое интересное Мигание(Включение и Выключение) светодиодов. Для этого нам понадобится две функции. Одна будет посылаться логическую единицу(Включать), а другая посылать логический ноль(Выключать).

GPIOC->ODR |= GPIO_ODR_8;
GPIOC->ODR &= ~GPIO_ODR_8;


Что бы этот эффект был более заметен надо сделать задержку. Увы тут приходится делать её самому(Если нет то поправите меня).

void delay (int a)
{
    volatile int i,j;

    for (i=0 ; i < a ; i++)
    {
        j++;
    }

    return;
}


Ну и все в принципе у вас должно получится очень красивое включение и выключение светодиода. Можно еще поэкспериментировать и сделать что-то похожие на елочную гирлянду.

Ссылки:

Купить эту плату (От туда взята таблица)
ST-LINK/V2(Для тех кто пропустил)
Официальная страница платы
Официальный сайт CoIDE
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.