野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15904|回复: 2

为什么这样配置GPIO不行

[复制链接]
发表于 2020-7-23 11:13:39 来自手机 | 显示全部楼层 |阅读模式
void LED_GPIO_Config(void)
{


                GPIO_InitTypeDef GPIO_InitTStruct;
                RCC_APB2PeriphClockCmd(LED1_GPIO_CLK|LED2_GPIO_CLK|LED3_GPIO_CLK|LED4_GPIO_CLK|LED5_GPIO_CLK,ENABLE);  //打开GPIOB外设时钟
                GPIO_InitTStruct.GPIO_Pin = LED1_GPIO_PIN|LED2_GPIO_PIN|LED3_GPIO_PIN|LED4_GPIO_PIN|LED5_GPIO_PIN;
                GPIO_InitTStruct.GPIO_Mode = GPIO_Mode_Out_PP;
                GPIO_InitTStruct.GPIO_Speed = GPIO_Speed_10MHz;
       
                RCC_APB2PeriphClockCmd(LED6_GPIO_CLK|LED7_GPIO_CLK|LED8_GPIO_CLK,ENABLE);  //打开GPIOB外设时钟
                GPIO_InitTStruct.GPIO_Pin = LED6_GPIO_PIN|LED7_GPIO_PIN|LED8_GPIO_PIN;
                GPIO_InitTStruct.GPIO_Mode = GPIO_Mode_Out_PP;
                GPIO_InitTStruct.GPIO_Speed = GPIO_Speed_10MHz;
       
                GPIO_Init(LED1_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);
               
                GPIO_Init(LED2_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);
               
                GPIO_Init(LED3_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED3_GPIO_PORT,LED3_GPIO_PIN);
               
                GPIO_Init(LED4_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED4_GPIO_PORT,LED4_GPIO_PIN);
               
                GPIO_Init(LED5_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED5_GPIO_PORT,LED5_GPIO_PIN);
               
                GPIO_Init(LED6_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED6_GPIO_PORT,LED6_GPIO_PIN);
               
                GPIO_Init(LED7_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED7_GPIO_PORT,LED7_GPIO_PIN);
               
                GPIO_Init(LED8_GPIO_PORT,&GPIO_InitTStruct);
                GPIO_ResetBits(LED8_GPIO_PORT,LED8_GPIO_PIN);

//         GPIO_SetBits(GPIOB,GPIO_PIN_2);
//         GPIO_InitTStruct.GPIO_Pin=GPIO_PIN_3;
//         GPIO_Init(GPIOB,&GPIO_InitTStruct);
//         GPIO_SetBits(GPIOB,GPIO_PIN_3);
//        

}
回复

使用道具 举报

发表于 2020-7-23 17:12:54 | 显示全部楼层
参考教学视频和教材来
回复 支持 反对

使用道具 举报

发表于 2020-7-24 09:00:53 | 显示全部楼层
GPIO_InitTStruct结构体里的参数被改了两次,只有最后一次的修改有效。如果想分别设置不同的IO口,需要在每次修改GPIO_InitTStruct结构体之后都调用一次GPIO_Init(),使修改的参数生效。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 13:53 , Processed in 0.035975 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表