本帖最后由 FAQ 于 2019-12-5 17:46 编辑
- void IO_Config(void)
- {
- GPIO_InitTypeDef gpio_initstruct;
- gpio_initstruct.Pin = GPIO_PIN_3;
- gpio_initstruct.Mode = GPIO_MODE_OUTPUT_PP;
- gpio_initstruct.Pull = GPIO_PULLUP;
- gpio_initstruct.Speed = GPIO_SPEED_MEDIUM;
- HAL_GPIO_Init(GPIOA, &gpio_initstruct);
- HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_SET);
- }
- void IO_Config(uint8 i)
- {
- GPIO_InitTypeDef gpio_initstruct;
- gpio_initstruct.Pin = GPIO_PIN_3;
- gpio_initstruct.Mode = GPIO_MODE_OUTPUT_PP;
- gpio_initstruct.Pull = GPIO_PULLUP;
- gpio_initstruct.Speed = GPIO_SPEED_MEDIUM;
- HAL_GPIO_Init(GPIOA, &gpio_initstruct);
- HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_SET);
- }
敲代码这么多年第一次遇到这个奇怪问题,上面的函数是初始化IO口为普通IO口,并且后续程序可以确定没有第二个地方引用或干扰这个IO,上面两个函数函数的区别是一个不带形参,一个带形参。
为什么不带形参的这个函数会影响到后面程序的功能,导致程序异常,反而这个带多余形参的函数却不会影响到后续程序功能,这个是什么情况。
芯片是STM32H750 IAR编译器

|