找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 776|回复: 2
打印 上一主题 下一主题
收起左侧

STM32根据宏定义写的函数没有效果

[复制链接]
跳转到指定楼层
楼主
ID:884998 发表于 2021-4-15 19:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:752974 发表于 2021-4-16 08:34 | 只看该作者
物理地址不能做函数实参,我试过,不可用。
回复

使用道具 举报

板凳
ID:884998 发表于 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)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表