ESP32平台基于Kconfig.projbuild文件配置GPIO口设计LED跑马灯程序

1、摘要

在嵌入式系统软件设计的过程中,总是要经常性地操作GPIO口,在ESP32平台中,我们可以使用下面的函数来初始化GPIO口:

在图1-1所示的函数的时候,用到了一个结构体:

 如图1-2所示,在该结构体中有一个64位的变量:pin_bit_mask该变量的每个比特位则对应一个GPIO口:

当需要初始化特定的GPIO口时,只要将该变量对应的比特位置为1,然后后调用gpio_config函数即可。

下面我就基于ESP32平台,使用Kconfig.projbuild文件创建LED配置的子菜单,来设计一个跑马灯程序。

2、编程环境

3、程序设计过程记录

第1步,启动Eclipse。

第2步,创建一个软件工程。

如图3-1-1所示,点击菜单创建一个软件工程。

 如图3-2-1所示,输入一个软件工程名称。

 如图3-2-2所示,输入软件工程名称后,点击“Finish”按钮。

 图3-2-3所示为创建完成的软件工程。

第4步,配置目标处理器。

 如图3-4-1所示,选择当前所使用的目标处理器。

第5步,查看自动创建的Kconfig.projbuild文件内容。

 如图3-5-1所示,点开“main“目录,双击打开”Kconfig.projbuild“文件,可看其中有一些WiFi配置方面的内容。

第6步,根据“nodemcu-esp-c3-32s-kit_v1.0“开发板原理图配置控制LED的GPIO口。

 如图3-6-1所示,RGB LED的三个GPIO口分别为: IO3、IO4、IO5,需要将这三个口配置为输出模式。

如图3-6-2所示,二个独立LED的控制口为:IO18、IO19,同样也需要将这二个端口配置为输出方式。

第7步,修改“Kconfig.projbuild文件中的配置项目。

 如图3-7-1所示,将原来的跟WiFi配置有关的菜单选项改为一个独立的子菜单选项。

如图3-7-2所示,增加一个跟RGB LED有关的配置子菜单。

 

如图3-7-3所示,增加一个二个独立LED有关的配置子菜单。

第8步,编译软件工程。

 如图3-8-1所示,点击“Project->Build All”菜单编程软件工程。

 如图3-8-2所示,软件工程编译完成后,会产生一个被称之为“sdkconfig”的文件,双击此文件可以查看由“Kconfig.projbuild”文件产生的配置选项。

第9步,用Eclipse中的插件查看“sdkconfig”中的配置选项。

 如图3-9-1所示,可见由“Kconfig.projbuild文件创建的配置选项。

 如图3-9-2所示,是跟RGB LED关联的配置选项。

如图3-9-3所示,是跟二个独立LED有关的配置选项。

第10步,查询配置文件对软件工程所起的关键作用。

 如图3-10-1所示,在build/config目录下的sdkconfig.h文件中可见到跟RGB LED和二颗独立LED端口的配置信息,这就是在后续的程序编写时可用到的变量。

第11步,编写测试程序。

(1)创建二个跟GPIO口操作有关的文件。

如图3-11-1所示,在main目录下添加二个文件:bsp_gpio.c、bsp_gpio.h。

 (2)添加新创建的C语言文件到编译环境中。

 如图3-11-2所示,打开”main->CMakeList.txt”文件,添加“bsp_gpio.c“文件到其中。

(3)声明操作GPIO的相关函数

如图3-11-3,打开“bsp_gpio.h”头文件,添加二个函数声明。

(4)添加c语言的头文件到bsp_gpio.c中。

如图3-11-4所示,打开“bsp_gpio.c”文件,添加头相关的头文件。

(5)添加函数“bsp_gpio_init”的程序代码。

如图3-11-5所示,添加了函数“bsp_gpio_init”的程序代码,在其中用到了那些在Kconfig.probuild配置文件中进行配置过的变量,该函数的主要功能是对指定的GPIO口进行了初始化处理。

(6)添加跑马灯驱动的程序代码

如图3-11-6所示,编写了一个驱动5个led灯的跑马灯程序。

(7)在main.c函数中添加调用跑马灯程序的代码。

 如图3-11-7-1所示,在“main.c”文件中添加“bsp_gpio.h”头文件。

 如图3-11-7-2,在”main.c”添加函数的调用代码。

第12步,编译代码并下载到目标板运行。

(1)编译代码,按下“CTRL+B“快捷键进行代码编译。

 如图3-12-1所示,编译结果正常。

(2)下载代码到目标板运行。

如图3-12-2所示,代码已经成功下载到目标板,并正常运行。

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值