Сначала о том что использую:
Плату дискавери с stm32f0 на борту
Пишу в блокноте, компилирую в командной строке (использую make файл)
Компилируется и прошивается нормально. Примеры с миганием светодиода прошли на ура.
Но когда попробовал следующий пример ( из примера были взяты только команды цикла, так как gpio был уже настроен), то он не сработал.
Код: Выделить всё
#include "stm32f0xx.h"
int main(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOCEN;
GPIOC->MODER |= GPIO_MODER_MODER8_0;
GPIOC->MODER &= ~GPIO_MODER_MODER8_1;
GPIOC->OTYPER &= ~GPIO_OTYPER_OT_8;
GPIOC->PUPDR &= ~GPIO_PUPDR_PUPDR8;
GPIOC->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR8;
GPIOC->MODER |= GPIO_MODER_MODER9_0;
GPIOC->MODER &= ~GPIO_MODER_MODER9_1;
GPIOC->OTYPER &= ~GPIO_OTYPER_OT_9;
GPIOC->PUPDR &= ~GPIO_PUPDR_PUPDR9;
GPIOC->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR9;
GPIOC->MODER &= ~GPIO_MODER_MODER4; // Кнопка - на вход.
GPIOC->PUPDR |= GPIO_PUPDR_PUPDR4_1;
GPIOC->PUPDR &= GPIO_PUPDR_PUPDR4_0;
GPIOC->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR9;
while(1)
{
if ((GPIOC->IDR & GPIO_IDR_4))
{GPIOC->BSRR=GPIO_BSRR_BS_8; GPIOC->BSRR=GPIO_BSRR_BR_9;}
else {GPIOC->BSRR=GPIO_BSRR_BS_9; GPIOC->BSRR=GPIO_BSRR_BR_8;}
}
}



