2023.12.4学习笔记(stm32跑马灯实验——库函数)

发布时间 2023-12-04 23:55:26作者: 潘守登

 

STM32f4有七组引脚(GPIOx),每组引脚有16个IO口,每组由十个寄存器控制。

 

 

 

查找STM32引脚的功能,可以在STM32F04ZGT6文件50页左右查询,此文件所在的位置为硬件资料、芯片资料文件夹里。

跑马灯实验思路步骤:1:使能时钟,调用函数RCC_AHB1PeriphClockCmd();

                                   2:初始化IO口模式,调用函数GPIO_Init();

                                   3:操作IO口,输出高低电平。

1,对于不同外设,调用的时钟函数可能不同。

具体代码: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//通过查看rcc.c的此函数定义,及越火参数代表的意义(查看函数说明下的assert_param查看意义和具体可选择的值)

2,初始化。①先定义一个结构体变量 ,目的是储存器寄存机所对应的状态,最后将其地址作为越火参数

                      GPIO_InitTypeDef GPIO_Initled;(名字叫GPIO_Initled)

                    ②初始化结构体:(右击函数GPIO_Init,选择go to defination of GPIO_Init,查看函数说明下的assert_param查看意义和具体可选择的值)

                                         GPIO_Initled.GPIO_Pin=GPIO_Pin_9;//选择第io口9
                                         GPIO_Initled.GPIO_Mode=GPIO_Mode_OUT;//IO口模式为输出
                                        GPIO_Initled.GPIO_OType=GPIO_OType_PP;//推挽输出
                                        GPIO_Initled.GPIO_Speed=GPIO_Speed_50MHz;//输出速度为50MHZ
                                        GPIO_Initled.GPIO_PuPd=GPIO_PuPd_UP;//输出模式为上拉

                                          GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIO

      3      输出高低电平 

                               GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);//GPIOF9,F10设置高,灯灭

                              对于输出低电平函数为:GPIO_ReseBits(CPIOx,GOIP_Pin);//GPIO组,GPIO组的端口

上述三步我们在led.c文件内完成。现在开始主函数

int main(void)
{

delay_init(168); //初始化延时函数
LED_Init(); //初始化LED端口

/**下面是通过直接操作库函数的方式实现IO控制**/

while(1)
{
GPIO_ResetBits(GPIOF,GPIO_Pin_9); //LED0对应引脚GPIOF.9拉低,亮 等同LED0=0;
GPIO_SetBits(GPIOF,GPIO_Pin_10); //LED1对应引脚GPIOF.10拉高,灭 等同LED1=1;
delay_ms(500); //延时300ms
GPIO_SetBits(GPIOF,GPIO_Pin_9); //LED0对应引脚GPIOF.0拉高,灭 等同LED0=1;
GPIO_ResetBits(GPIOF,GPIO_Pin_10); //LED1对应引脚GPIOF.10拉低,亮 等同LED1=0;
delay_ms(500); //延时300ms
}
}

 任务完成。