четверг, 7 сентября 2017 г.

Зажигаем, тушим, мигаем светодиодом

Разработку  я веду на отладочной плате STM32F103C8T6 стоимостью $1.68 в среде разработки CoIDE V1.7.8. Светодиод подключен к выводу микроконтроллера STM32F103C8 B5.


В CoIDE создаем новый проект, подключаем все необходимые библиотеки.


Для того чтобы включить нужную периферию, необходимо подать тактирование на конкретный блок. За тактирование отвечает библиотека RCC. Библиотека GPIO отвечает за конфигурирование внешних портов ввода вывода. Содержимое main.c представлено ниже.

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

void delay (uint32_t time_delay) //функция задержки
{
   uint32_t i;
   for (i=0;i<time_delay;i++);
}

int main(void)
{
   GPIO_InitTypeDef led_fire;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //Включаем тактирование порта B
   led_fire.GPIO_Speed = GPIO_Speed_50MHz;
   led_fire.GPIO_Mode  = GPIO_Mode_Out_PP;
   led_fire.GPIO_Pin   = GPIO_Pin_5 ;
   GPIO_Init(GPIOB, &led_fire);

   //GPIO_SetBits(GPIOB, GPIO_Pin_5); // зажигаем светодиод

    while(1)
    {
      GPIO_SetBits(GPIOB, GPIO_Pin_5); // зажигаем светодиод
      delay (5000000); // задержка 1 сек

      GPIO_ResetBits(GPIOB, GPIO_Pin_5); // тушим светодиод
      delay (5000000); // задержка 1 сек
    }
}