GPIO_Pin_x和控制码之位操作思想
/******** I/O口工作模式 ********/
typedef enum
{ GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
/******** 初始化 ********/
void LEDXH_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
/******** GPIO_Pin_x和控制码之位操作思想 ********/
int main(void)
{
LEDXH_Init();
// while(1){
// temp=0x100;
// for(i=0;i<4;i++){
// GPIO_Write(GPIOB,~temp);
// Delay(100);
// temp=temp<<1;
// }
// }
/********* GPIO_Pin_x操作 ********/
// while(1){
// GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
// GPIO_ResetBits(GPIOB,GPIO_Pin_8);
// Delay(100);
// GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
// GPIO_ResetBits(GPIOB,GPIO_Pin_9);
// Delay(100);
// GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
// GPIO_ResetBits(GPIOB,GPIO_Pin_10);
// Delay(100);
// GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);
// GPIO_ResetBits(GPIOB,GPIO_Pin_11);
// Delay(100);
// }
/********* 控制码 ********/
while(1){
temp=0x0100;
for(i=0;i<4;i++){
GPIO_SetBits(GPIOB,0xFFFF);
GPIO_ResetBits(GPIOB,temp);
Delay(1000);
temp=temp<<1;
}
}
}
版权声明:本文为RSheng16原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。