测试代码如下:
LedInit(GPIOB, GPIO_PIN_1 | GPIO_PIN_6 | GPIO_PIN_7);
LedOn(GPIOB, GPIO_PIN_1 | GPIO_PIN_6 | GPIO_PIN_7);
//Delay(0x28FFFF);
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB|RCC_APB2_PERIPH_GPIOA|RCC_APB2_PERIPH_AFIO, ENABLE);
GPIOB->PLOCK = 0x10002; //PLOCKK写1
GPIOB->PLOCK = 0x00002; //PLOCKK写0
GPIOB->PLOCK = 0x10002; //PLOCKK写1
read = GPIOB->PLOCK; //读0
read = GPIOB->PLOCK; //读1
GPIO_InitStruct(&GPIO_InitStructure);
GPIO_InitStructure.Pin = GPIO_PIN_1 | GPIO_PIN_6 | GPIO_PIN_7;
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_INPUT;
GPIO_InitPeripheral(PORT_GROUP, &GPIO_InitStructure);
while (1)
{
LedBlink(PORT_GROUP, LED1_PIN | LED2_PIN | LED3_PIN);
Delay(0x28FFFF);
}
可以看到代码中将PB1锁定,然后对PB1、PB6、PB7重新配置,再进行翻转。如图所示,只有PB1控制的LED在闪烁,PB6、PB7控制的LED熄灭
|