27,383
社区成员
发帖
与我相关
我的任务
分享
看来用STM32的人挺多啊!不知道LZ拿STM32来做什么产品?
小灰机 [quote=引用 2 楼 xqhrs232 的回复:] 看来用STM32的人挺多啊!不知道LZ拿STM32来做什么产品?
查看函数void GPIO_DeInit(GPIO_TypeDef* GPIOx),看到如下代码: void GPIO_DeInit(GPIO_TypeDef* GPIOx) { /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); if(GPIOx == GPIOA) { RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOA, DISABLE); } else if(GPIOx == GPIOB) { RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOB, ENABLE); RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOB, DISABLE); } else if(GPIOx == GPIOC) { RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOC, ENABLE); RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOC, DISABLE); } else if(GPIOx == GPIOD) { RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOD, ENABLE); RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOD, DISABLE); } else { if(GPIOx == GPIOF) { RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOF, ENABLE); RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOF, DISABLE); } } } 我感到疑惑的是,既然该函数的作用是重设为缺省值,在if判断语句中为什么不直接将外设端口置为DISABLE,为什么每个if判断语句的第一行都要先置为ENABLE再执行 RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOx, DISABLE)语句,这样做的用意是什么?