ESP-IDF Kconfig文件配置

ESP-IDF Kconfig文件配置

IDF开发环境的工程目录下,有一个sdkconfig文件,这个文件中包含了一些预设的参数,可以通过menuconfig进行可视化调节参数,十分方便。但是如果我们要修改这个文件,会发现编译的时候,我们修改的文件会被编译器改写,因此,下面就教大家如何修改Kconfig文件。

1.建立Kconfig.projbuild文件

在工程的main路径中建立Kconfig.projbuild文本文件

image-20211008190349992

2.改写Kconfig文件

这里是Kconfig文件格式的介绍

下面是一个I2C自定义组件里的例子,在Kconfig中增加关于I2C总线SCL引脚的定义:

image-20211008190405060

menu "Example Configuration"



  menu "I2C Master"

​    config I2C_MASTER_SCL

​      int "SCL GPIO Num"

​      default 6 if IDF_TARGET_ESP32C3

​      default 19 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3

​      help

​        GPIO number for I2C Master clock line.

menu "I2C Master"是生成菜单的名字,内部包含N个关键字或者配置选项,可以进行嵌套,时间效果如下图:

image-20211008190432498

config是关键字,表示一组配置选项的开始,内部包含N个配置选项

int "SCL GPIO Num"这个为所配置选项的名称,前面跟该变量的数据类型。

default 跟该条目的初始变量值,可用if进行预值判断。

help就是在UI界面中,点击问号,会出现的文本,给用户做配置选项的说明。

image-20211008190445369

实际的最后配置界面中,就会出现这样子的目录结构:

image-20211008190459972

具体的Kconfig语言还有很多其他的语法,它使我们可以使用menuconfig时能快速配置各个选项,十分方便,其他的写法可以举一反三。

修改完Kconfig,projbuild文件后,点击保存,进入下一步。

3.清空工程(Full Clean)并编译

猴急的小伙伴修改完肯定迫不及待地点了编译,这时候你会发现,你的Kconfig文件还是没有任何更改,因为编译器二次编译的检索文件更新,检测不到我们新增的Kconfig.projbuild,因此我们需要点击VSCODE下方的垃圾桶图标(也可用idf.py的clean命令):

image-20211008190516981

然后再点击右侧的编译,等待漫长的编译过程后,再点击下方的menuconfig的齿轮图标,可以看到成果了:

image-20211008190557201

image-20211008190615013

4.CONFIG变量使用

配置完可视化界面修改变量后,我们要怎么使用这个变量呢?

这个时候,这个CONFIG变量已经转换成了常量,只能读取,不能进行修改,因此我们可以很方便地进行操作。

首先在我们之前定义的CONFIG变量名前加上前缀CONFIG_,这个是编译器帮我们加的,具体的变量可以在sdkconfig文件中找到:

image-20211008190630929

可以发现我们使用的是IDF_TARGET_ESP32平台,因此编译器将此数值定义为了19。

我们可以使用#define关键字,将改预定义变量,与实际程序中的接口变量进行替换:

image-20211008190654329

当然也可以直接将该常量赋值给其他的变量:

image-20211008191137379

这样子就完成了,本人才疏学浅,若文中有误请各位大佬不吝赐教!

  • 12
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值