一、需要用到的硬件:3个ESP32C3、3条线,两条杜邦线
二、需要用到的软件:vscode和ESP-IDF插件
三、需要用到的例程:deep_sleep、gatt_client demo、gatt_server demo
1、deep_sleep深度睡眠例程
这个例程中烧录进去不做任何操作会导致定时器20s后唤醒一次打印数据再一次睡眠,里面有用到GPIO唤醒,使用GPIO0作为唤醒源,其为高电平就会唤醒,打印。
定时器20s后唤醒串口打印数据如下(注意用串口调试器打开串口后,就已经占用了串口,如果要再次烧录需要先关闭串口才能正常烧录,否则烧录的时候会报错,导致无法烧录成功):
本实验需要使用的是GPIO唤醒,所以需要先关闭定时器唤醒,并测试GPIO唤醒。
(1)定时器唤醒:
这是定时器唤醒后的操作,打印出睡眠到唤醒的时间,在入口函数中。
注释掉设置定时器唤醒20s的配置,不再会20s导致定时器唤醒事件到了(注释了这个上面的定时器唤醒事件是无法进去的)
(2)GPIO唤醒
这是GPIO唤醒源被激活(也就是GPIO0被输入高电平时),串口打印输出。(由于vscode和ESP32-IDF问题,虽然这个暗色,但是能执行,#if是存在的,与上节中虽然报错但是却能正常编译和烧录一样奇怪,估计是设置配置没有被正常检查到)
这是是设置GPIO唤醒源的配置,对GPIO配置以及设置高电平触发,其中的#idfef也是在生成的sdkconfig