需求:配置PB1为推挽输出,上电后控制IO复位一下
问题:因为错误的对PA1进行置位复位操作,导致系统启动后PB1被拉低,是什么原因?
猜测:可能是GPIO引脚配置频率过高?系统频率为48MHz
源码:
GPIOA、GPIOB时钟已开启
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_Init(GPIOB, &GPIO_InitStructure);
void Func_Reset(void)
{
GPIO_SetBits(**GPIOA**,GPIO_Pin_1);
Delay_ms(50);
GPIO_ResetBits(**GPIOA**,GPIO_Pin_1);
Delay_ms(50);
GPIO_SetBits(**GPIOA**,GPIO_Pin_1);
}
就是在这个Reset函数中忘记修改GPIOx了,PA1在工程中并没有被配置,应该是处于默认的浮空输入状态,但是为什么会导致PB1被拉低呢?