16
STM32. Занятие 2 GPIO Двигатели Датчики Ведущий: Савкин Сергей ЦМИТ Академия 2015

2 stm32 gpio

Embed Size (px)

Citation preview

STM32. Занятие 2

GPIO Двигатели Датчики

Ведущий: Савкин Сергей

ЦМИТ Академия 2015

Nucleo

Discovery

Не использовать кириллицу!

/* GPIOG Peripheral clock enable */

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);

/* Configure PG6 and PG8 in output pushpull mode */

GPIO_InitStructure.GPIO_Pin = LED1_PIN | LED2_PIN;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

GPIO_Init(GPIOG, &GPIO_InitStructure);

/* Set PG6 and PG8 */

GPIOG->BSRRL = LED1_PIN | LED2_PIN;

/* Reset PG6 and PG8 */

GPIOG->BSRRH = LED1_PIN | LED2_PIN;

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);

HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13);

/* PD12 to be toggled */

GPIO_SetBits(GPIOD, GPIO_Pin_12);

while (1)

{

if (!(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)))

{

for(uint64_t i=0;i<100000000;i++)

{

__NOP();

}

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);

}else

{

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);

}

}

Курс: 10 занятий

0. Знакомство c программами, мигание светодиодом

1. Память, ядро и тактирование

2. GPIO, двигатели и датчики

3. Таймеры и прерывания

4. АЦП и ЦАП

5. DMA контроллер

6. I2C(TWA) и SPI

7. USART

8. USB и SDIO

9. Система реального времени

10.Занятие по проектам участников

Сергей Савкин, +79154579583, [email protected]