有关于宏定义的问题,涉及##和#

2019-07-14 18:51发布

我想通过自定义GPIO,来方便程序的移植
比如
  1. #define My_GPIO GPIOC
复制代码然后程序中直接可以使用My_GPIO来实现对应的操作。
但是在端口初始化的过程中,还需要初始化相应的时钟,我同样想通过宏定义来实现,如下面格式
  1. #define link(arg) RCC_APB2Periph_##arg
复制代码返回的结果为RCC_APB2Periph_GPIOC,以方便在时钟使能函数中使用
请教该怎么实现
                                                                                       ——来自宏定义小白

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
灬今何在灬
1楼-- · 2019-07-15 01:31
哥们,建议你去玩玩位带操作。你就会明白很多了
灬今何在灬
2楼-- · 2019-07-15 06:37
 精彩回答 2  元偷偷看……
追梦听雨
3楼-- · 2019-07-15 07:12
灬今何在灬 发表于 2018-4-23 11:10
或者你要的是这样   #define MYIO(a) GPIO##a输入ABCDEFG就OK了

可能是我没有说明白,我想通过
#define My_GPIO GPIOC
来方便程序的移植,而不需要每次去程序中找移植后需要修改的地方

其实还有一个比较简单的方法,就是把需要的端口,引脚时钟都重新自己定义一下,只不过觉得有点麻烦
追梦听雨
4楼-- · 2019-07-15 13:02
z00 发表于 2018-4-22 09:46
#define link(x) RCC_APB2Periph(x)

可以详细的说明一下吗

一周热门 更多>