app.json
用于对轻应用进行全局配置,设置页面文件的路径、硬件I/O口的配置等。
以下是一个基本配置示例:
{
"version": "0.0.1",
"io": {
"D1": {
"type": "GPIO",
"port": 31,
"dir": "output",
"pull": "pullup"
},
"D2": {
"type": "GPIO",
"port": 32,
"dir": "output",
"pull": "pullup"
},
"D3": {
"type": "GPIO",
"port": 33,
"dir": "output",
"pull": "pullup"
}
},
"debugLevel": "DEBUG",
"repl": "enable"
}
完整配置如下:
配置项 | 类型 | 是否必填 | 描述 |
version | String | 否 | IoT轻应用版本号 |
io | Object | 是 | 硬件接口配置 |
debugLevel | String | 否 | 设置日志等级,默认为ERROR |
repl | String | 否 | 设置repl开关,默认打开设置为enable,关闭设置为disable |
在JS应用代码中,通过 appConfig
可以获取到 app.json
中的内容。
version 配置项
轻应用版本号。
io 配置项
不同的模组/芯片,各个端口和管脚的功能映射可能是不一样的。
IoT轻应用的配置文件 app.json
中,可将硬件(芯片)的物理端口映射成为统一的应用层逻辑端口。
这样映射的好处是在替换不同的硬件或者芯片时,只需要替换 app.json
而不用修改应用程序或设备程序,从而便于应用的跨平台运行。
IO配置项中有 type
port
等硬件描述概念,对于每一款硬件(通常是芯片/模组/开发板)该配置文件均可能不同。
语法描述格式定义如下:
{
"io": {
"D1":{
"type":"GPIO",
"port":12,
"dir":"output",
"pull":"pullup"
},
"I2C0":{
"type":"I2C",
"port":0,
"mode":"master",
"addrWidth":7,
"devAddr":270,
"freq":100000
}
},
"debugLevel": "DEBUG"
}
解释:
D1
I2C0
:定义对象,后面大括号里面则描述了该对象的类型。 定义后可以在 JS 中直接使用。type
: 描述了该对象的类型,可以是IoT轻应用支持的硬件扩展类型,如 GPIO,I2C,ADC 等。port
:描述了该对象的端口,这里需要根据实际硬件连接及芯片的PIN 脚映射关系来填写。dir
pull
: 是 GPIO 类型特有的,用于描述 GPIO 输出输出及上拉下拉,其他如 ADC 类型则有sampling
采样频率这种类型描述。
外设 type 说明
io配置项的 type
用于描述该对象是什么硬件端口类型,而每一种type
也拥有不同的属性字段,如 GPIO 与 ADC 的属性字段是不一样的。
GPIO
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,端口值跟硬件接口有一一对应关系 |
dir | String | output | 否 | 配置引脚方向,设置为输出模式(默认) |
input | 配置引脚方向,设置为输入模式 | |||
irq | 配置引脚方向,设置为为中断模式 | |||
analog | 配置引脚方向,设置为模拟 IO 模式 | |||
pull | String | pulldown | 否 | 配置引脚电阻,设置为上拉模式(默认) |
pullup | 配置引脚电阻,设置为下拉模式 | |||
opendrain | 配置引脚电阻,设置为开漏模式 | |||
intMode | String | rising | 否 | 配置引脚中断模式,设置为上升沿触发 |
falling | 配置引脚中断模式,设置为下降沿触发 | |||
both | 配置引脚中断模式,设置为边沿触发(默认) |
示例
{
"io": {
"D3": {
"type": "GPIO",
"port": 22,
"dir": "output",
"pull": "pullup"
},
"D4": {
"type": "GPIO",
"port": 23,
"dir": "irq",
"pull": "pullup",
"intMode": "rising"
}
},
"debugLevel": "DEBUG"
}
UART
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet上 的端口对应 |
dataWidth | Number | 5/6/7/8 | 否 | 串口数据宽度值,默认为 8(bits) |
baudRate | Number | 9600、115200等 | 否 | 串口波特率,默认为 115200 |
stopBits | Number | 1/2 | 否 | 串口停止位,默认为 1 |
flowControl | String | disable | 否 | 流控设置,默认 disable |
cts | ||||
rts | ||||
rtscts | ||||
parity | String | none | 否 | 奇偶校验设置,默认 none |
odd | ||||
even |
示例
{
"io": {
"UART1":{
"type":"UART",
"port":1,
"dataWidth":3,
"baudRate":9600,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
},
"UART2":{
"type":"UART",
"port":2,
"dataWidth":3,
"baudRate":115200,
"stopBits":1,
"flowControl":"disable",
"parity":"none"
}
},
"debugLevel": "DEBUG"
}
I2C
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet 上的端口对应 |
addrWidth | Number | 7 或 10 | 否 | 配置 I2C 总线地址宽度,默认 7 |
freq | Number | 100000、400000等 | 否 | 配置 I2C 总线频率,默认 300000 |
mode | String | master 或 slave | 否 | 配置 I2C 总线主从模式,默认 master |
devAddr | Number | 224等 | 否 | 配置 I2C 从设备地址,默认 224 |
示例
{
"io": {
"I2C0":{
"type":"I2C",
"port":0,
"mode":"master",
"addrWidth":7,
"devAddr":27,
"freq":100000
}
},
"debugLevel": "DEBUG"
}
SPI
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet 上的端口对应 |
mode | String | master 或 slave | 否 | 配置 SPI 总线模式,默认 master |
freq | Number | 3250000、6500000等 | 是 | 配置 SPI 总线频率 |
示例
{
"io": {
"SPI1":{
"type":"SPI",
"port":1,
"mode":"master",
"freq":3250000
}
},
"debugLevel": "DEBUG"
}
ADC
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet 上的端口对应 |
sampling | Number | 12000000 | 否 | 配置 ADC 采样率 |
示例
{
"io": {
"voltage": {
"type": "ADC",
"port": 1,
"sampling": 12000000
}
},
"debugLevel": "DEBUG"
}
DAC
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet 上的端口对应 |
示例
{
"io": {
"DAC1": {
"type": "DAC",
"port": 1
}
},
"debugLevel": "DEBUG"
}
PWM
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet 上的端口对应 |
示例
{
"io": {
"PWM1": {
"type": "PWM",
"port": 1
}
},
"debugLevel": "DEBUG"
}
TIMER
属性字段 | 数据类型 | 属性值 | 是否必须 | 字段说明 |
port | Number | 1 | 是 | 配置端口值,这里跟芯片 datasheet 上的端口对应 |
示例
{
"io": {
"TIMER1": {
"type": "TIMER",
"port": 1
}
},
"debugLevel": "DEBUG"
}
debugLevel
配置调试日志等级,分为如下几个等级,默认为ERROR
等级 | 说明 |
| 显示debug级别的日志 |
| 显示info级别的日志 |
| 显示warning级别的日志 |
| 显示error级别的日志 |
| 显示fatal级别的日志 |
repl(交互式解析器)
配置交互式解析器开关,默认打开。
值 | 说明 |
---|---|
enable | 打开repl功能 |
disable | 关闭repl功能 |
示例
{
"version": "1.0.0",
"io": {
"D1": {
"type": "GPIO",
"port": 31,
"dir": "output",
"pull": "pullup"
}
},
"debugLevel": "DEBUG",
"repl": "disable"
}
在文档使用中是否遇到以下问题
更多建议
匿名提交