本帖最后由 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编译器
|
破案了,时隔近两年,发现是TFT的复位脚对应STM32输出脚设置成了开漏输出了,应该有上拉电阻或者直接设置成推挽输出也可以。否则TFT不能正常复位,就不能正常显示。这个是根本原因。但是到现在依然还是搞不懂和函数有没有形参有什么关系。
@mintspring :是啊,的确是多余的形参,的确啥也没干,后续功能就好了,反到如果没有这个形参会导致后续程序功能运行不正常。原本我的程序设计的意图是不需要形参的,但是调试过程中发现异常,无意间发现加个形参,并且这个形参地区啥也没干就后续程序功能就好了。汗颜。敲代码好几年了第一次遇到这种情况。汗颜死了。
带参数的那个没看到参数干啥了啊。?