物联网全栈教程--手把手教你开发一个智能浇花器(2)->GPIO 控制三色灯颜色和BSP函数实现

大家好,我是吴彦祖,好了啦。骗你们的啦。我是Mr_Dong。下面我们正式来讲ESP8266 中GPIO的控制。

先看一下手册中GPIO对于的API函数介绍。

 看完了上面介绍。我们下面写个实例加深一下印象。


 

#define SWITCH_Pin_NUM         5                                 // 开关输入管脚相关 宏定义
#define SWITCH_Pin_FUNC        FUNC_GPIO5                        //管脚功能
#define SWITCH_Pin_MUX         PERIPHS_IO_MUX_GPIO5_U         

#define SWITCH_Pin_Rd_Init()   GPIO_DIS_OUTPUT(SWITCH_Pin_NUM)   //设置为读状态
#define SWITCH_Pin_Wr_Init()   GPIO_OUTPUT_SET(SWITCH_Pin_NUM,0) //设置为写状态
#define SWITCH_Pin_Set_High()  GPIO_OUTPUT_SET(SWITCH_Pin_NUM,1) //设置管脚为高
#define SWITCH_Pin_Set_Low()   GPIO_OUTPUT_SET(SWITCH_Pin_NUM,0)//设置管脚为低
#define SWITCH_Pin_State()     GPIO_INPUT_GET(SWITCH_Pin_NUM)   //读取管脚状态



/*******************************************************************
函数名称:rgbGpioInit 函数
 函数作用:初始化GPIO管脚,SWITCH_Pin设置为输出。
 函数输入参数说明:无
 函数返回值说明:无
 其他说明:
*******************************************************************/
void ICACHE_FLASH_ATTR rgbGpioInit(void)
{

        PIN_FUNC_SELECT(SWITCH_Pin_MUX, SWITCH_Pin_FUNC );
        SWITCH_Pin_Set_High ();    //设置管脚为高
}

  上面三个函数,我们分别实现了对GPIO_5 设置为输出高。输出低。还有读取GPIO状态三个函数。

   那大家肯定又要问了(其实没人会问)。为啥在 void 之后加ICACHE_FLASH_ATTR ?不加行不行?

  这里我要特别说明一下:

ICACHE_FLASH_ATTR 是 ESP8266_NONOS_SDK 才需要添加的宏,ESP8266_RTOS_SDK 默认使用这个宏,无需特别添加。如果不加这个宏,代码一开始就加载到 RAM 的函数,将始终在 RAM 中。这样很快就把内存用完了,也就是我们俗称的败家玩意,在我们添加了这个宏之后,在 CACHE 中的函数,才是仅调用时才加载到 CACHE 中。

  今天的课程很简单。连续几天的晚睡感觉最近精神都不在状态,今天决定要在12点之前睡觉。洗澡睡觉了。晚安。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值