为什么我配置的gpio只能输出高电平?

2019-07-21 04:37发布

             自制了蓝牙小车,电机初始化程序如下

         GPIO_InitTypeDef GPIO_InitStructure;
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);
          
       
         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
       
         GPIO_Init(GPIOG,&GPIO_InitStructure);                              

       
         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
       
         GPIO_Init(GPIOG,&GPIO_InitStructure);
       
       
         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
         GPIO_Init(GPIOG,&GPIO_InitStructure);


         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
         GPIO_Init(GPIOG,&GPIO_InitStructure);   



        四个io的开关在uasrt1中断里面写了,用led来验证接受,也没有问题 ,但是四个io似乎只能输出高电平,只有我把杜邦线拔掉一根,电机才能运作,请问这事怎么回事?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
zzy1215038267
1楼-- · 2019-07-21 07:12
其他io无反应,使能的4个全部为高
1208
2楼-- · 2019-07-21 08:48
 精彩回答 2  元偷偷看……
zzy1215038267
3楼-- · 2019-07-21 13:43
1208 发表于 2019-3-7 12:36
加上这一句试下GPIO_ResetBits(GPIOG,GPIO_Pin_x);

好像没用~现在只能拔掉其中一个杜邦线,车子才能动
zzy1215038267
4楼-- · 2019-07-21 16:42
问题已经自行解决,解决方案是将推挽输出改为开漏输出,io
口通过杜邦线连接到了电机驱动的接口。虽然已经解决但是依然不太理解原理。
tgw860910
5楼-- · 2019-07-21 21:17
zzy1215038267 发表于 2019-3-7 15:15
问题已经自行解决,解决方案是将推挽输出改为开漏输出,io
口通过杜邦线连接到了电机驱动的接口。虽然已经 ...

上拉电阻太大?

一周热门 更多>