pulo (26.12.2011 19:20, просмотров: 4891)
Почему не работает следующее (МК = STM32F107):
__IO uint32_t;
RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOE, ENABLE);
GPIO_DeInit(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //PE15 output push-pull
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIOE->ODR &= ~(1<<15);
for(t = 0;t<500000;t++);
GPIOE->ODR |= 1<<15;
но нормально работает такой код:
RCC->APB2ENR |= (1<<4) | (1<<6);
GPIOE->CRH = (GPIOE->CRH & ~(0x0F<<28)) | (0x03<<28); //PE15 output push-pull
GPIOE->ODR &= ~(1<<15);
for(t = 0;t<500000;t++);
GPIOE->ODR |= 1<<15;
Может у кого есть пример в "красивом" виде для дерганья ногой:-) ну те хочу писать используя стандартную библиотеку периферии от stm32, а не непосредственно с регистрами работать..