野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16105|回复: 3

#if 0 #else 分支 怎么选择分支,用哪个呀

[复制链接]
发表于 2015-1-15 08:59:48 | 显示全部楼层 |阅读模式
#if 0        /* ìõ¼t±àòë£o 1 Ñ¡ÔñGPIOμÄ¿aoˉêyêμÏÖIO¶áD′ */
        #define I2C_SCL_1()  GPIO_SetBits(GPIO_PORT_I2C, I2C_SCL_PIN)                /* SCL = 1 */
        #define I2C_SCL_0()  GPIO_ResetBits(GPIO_PORT_I2C, I2C_SCL_PIN)                /* SCL = 0 */
       
        #define I2C_SDA_1()  GPIO_SetBits(GPIO_PORT_I2C, I2C_SDA_PIN)                /* SDA = 1 */
        #define I2C_SDA_0()  GPIO_ResetBits(GPIO_PORT_I2C, I2C_SDA_PIN)                /* SDA = 0 */
       
        #define I2C_SDA_READ()  GPIO_ReadInputDataBit(GPIO_PORT_I2C, I2C_SDA_PIN)        /* ¶áSDA¿úÏß×′ì¬ */
#else        /* Õa¸ö·Ö֧ѡÔñÖ±½ó¼Ä′æÆ÷2ù×÷êμÏÖIO¶áD′ */
    /*¡¡×¢òa£oèçÏÂD′·¨£¬ÔúIAR×î¸ß¼¶±eóÅ»ˉê±£¬»á±»±àòëÆ÷′íÎóóÅ»ˉ */
        #define I2C_SCL_1()  GPIO_PORT_I2C->BSRR = I2C_SCL_PIN                                /* SCL = 1 */
        #define I2C_SCL_0()  GPIO_PORT_I2C->BRR = I2C_SCL_PIN                                /* SCL = 0 */
       
        #define I2C_SDA_1()  GPIO_PORT_I2C->BSRR = I2C_SDA_PIN                                /* SDA = 1 */
        #define I2C_SDA_0()  GPIO_PORT_I2C->BRR = I2C_SDA_PIN                                /* SDA = 0 */
       
        #define I2C_SDA_READ()  ((GPIO_PORT_I2C->IDR & I2C_SDA_PIN) != 0)        /* ¶áSDA¿úÏß×′ì¬ */
#endif

这是野火开发板-mini 模拟I2C里面的代码,怎么去选择用库函数还是操作寄存器,

回复

使用道具 举报

发表于 2015-1-15 09:06:33 | 显示全部楼层
根据if的条件,你这个是用else里的
回复 支持 反对

使用道具 举报

发表于 2015-1-15 09:24:22 | 显示全部楼层
预编译啊,在编译时根据判断选择需要编译的部分
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 09:27:17 | 显示全部楼层
哦您的意思是  如果#if 1   #else  就是用  #if后面的内容是吧?
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 23:10 , Processed in 0.026286 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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