想把温度传感器的IO,#define为函数,求助

2019-08-12 17:59发布

//#define DS18B20_IO_IN()  {GPIOD->CRH&=0XFFFF0FFF;GPIOD->CRH|=8<<12;}      
//#define DS18B20_IO_OUT() {GPIOD->CRH&=0XFFFF0FFF;GPIOD->CRH|=3<<12;}       

#define DS18B20_IO_IN(Pin)  ({GPIOD->CRH&=(~(0x000F<<((Pin-8)*4)));GPIOD->CRH|=8<<((Pin-8)/4);})     
#define DS18B20_IO_OUT(Pin) ({GPIOD->CRH&=(~(0x000F<<((Pin-8)*4)));GPIOD->CRH|=3<<((Pin-8)/4);})                                                                          
#define        DS18B20_DQ_OUT(Pin) (PDout(Pin))
#define        DS18B20_DQ_IN(Pin)  (PDin(Pin))

想把注释掉的内容用define 定义为函数,方便使用任意IO。该怎么做呢?
谢谢!!!!!!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
xlong_06
1楼-- · 2019-08-12 19:56
void DS18B20_IO_IN(void)
{
     GPIOD->CRH&=0XFFFF0FFF;
     GPIOD->CRH|=8<<12;
}   
这样子就好了呀!另外一个类似。
Sun_Fly
2楼-- · 2019-08-12 22:26
百度typedef   有你想知道的,可以直接定义库函数

一周热门 更多>