小弟最近在玩STM32之DS18B20实验,遇到一个问题:如程序部分:
static void DS18B20_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//我在这里已经配置了GPIO的Speed
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_10);
}
static void DS18B20_Mode_Out_PP(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//结果我在这里就没有再次配置GPIO_Speed,结果程序运行不正确
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
小弟想请问大神:
1如果我给GPIOB配置好了参数,GPIO_Mode和GPIO_Speed,也写入了寄存器(GPIO_InitStructure)
2那我下次重新配置GPIOB的时候,假如此时我只想修改GPIO_Mode,此时GPIO_Speed还会保存我上次设置的默认值吗?小弟不明白,恳请大神指教~~~ |