标题: STM32根据宏定义写的函数没有效果 [打印本页]

作者: MirrAKe    时间: 2021-4-15 19:43
标题: STM32根据宏定义写的函数没有效果
  1. #define digitalTOGGLE(p,i)       {p->ODR ^=i;}
  2. #define LED0_TOGGLE              digitalTOGGLE(LED0_GPIO_PORT,LED0_GPIO_PIN )
  3. #define LED1_TOGGLE              digitalTOGGLE(LED1_GPIO_PORT,LED1_GPIO_PIN )
复制代码

上面这段宏定义为什么换成下面这段函数之后就没有效果了
  1. void LED_TOGGLE(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
  2. {
  3.     GPIOx ->ODR ^= GPIO_Pin;
  4. }
复制代码

实参我用的也是LED0_GPIO_PORT和LED0_GPIO_PIN


作者: munuc_w    时间: 2021-4-16 08:34
物理地址不能做函数实参,我试过,不可用。
作者: MirrAKe    时间: 2021-4-16 08:49
本帖最后由 MirrAKe 于 2021-4-16 08:51 编辑
munuc_w 发表于 2021-4-16 08:34
物理地址不能做函数实参,我试过,不可用。

函数不能用物理地址做实参的话,那些标准库里的函数那些形参是物理地址的为啥可以用啊,就比如说这个函数:GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1