跑马灯实验- 库函数

每组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)    收藏  举报

导航