跑马灯实验- 库函数
每组IO口有7个寄存器,分别为:
GPIOx_CRL :端口配置低寄存器
GPIOx_CRH:端口配置高寄存器
GPIOx_IDR:端口输入寄存器
GPIOx_ODR:端口输出寄存器
GPIOx_BSRR:端口位设置/清除寄存器
GPIOx_BRR :端口位清除寄存器
GPIOx_LCKR:端口配置锁存寄存器

IO输出低电平可点亮LED,高电平熄灭。
在本实验中主要对IO设置输出高低电平,使用GPIOx_BSRR、GPIOx_BRR两个寄存器。将IO输出模式设置为推挽输出。
1)使能IO口对应的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);
2)初始化IO口
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; 第5脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_5);GPIOB
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_SetBits(GPIOE,GPIO_Pin_5); GPIOE
结构体的定义可以在库中stm32f10x_gpio.c找到其定义
3)操作IO口输出高低电平
在mian函数中定义
GPIO_ResetBits(GPIOB,GPIO_Pin_5); 输出低电平
GPIO_SetBits(GPIOE,GPIO_Pin_5); 输出高电平
delay_ms(300); 延时
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_ResetBits(GPIOE,GPIO_Pin_5);
delay_ms(300);

posted on 2020-10-03 11:03 pengyq0930 阅读(269) 评论(0) 收藏 举报
浙公网安备 33010602011771号