API 概述
芯片模板的 API 分为全局变量、外设函数和生命周期回调三类,供 ips/{IP}/ui/*.cjs 和 ips/{IP}/code/{version}/pre.cjs 中使用。
全局变量
| 变量 | 作用域 | 说明 |
|---|---|---|
$root | ui.cjs | 当前外设实例,包含该外设的所有配置数据 |
$clock | ui.cjs | 时钟树实例,通过 $clock['IRC8M'].outclk 获取频率 |
$pins | ui.cjs | 引脚实例,$pins.pins 为所有引脚数组 |
$global | ui.cjs | 所有外设实例的集合,$global['USART1'] 访问其他外设 |
ip | pre.cjs | 当前外设的配置对象,包含 $name、firmware、DMA、NVIC 等 |
locals | pre.cjs | 全局上下文,包含 defineMap(寄存器宏映射)、global |
@get: | ui.cjs | 响应式 getter,"@get: $root.Mode.value" 动态获取值 |
@set: | ui.cjs | 响应式 setter,"@set: $parent.inclk" 写回计算值 |
@value: | ui.cjs | 一次性取值,不建立响应式依赖 |
外设 API
各外设通过 ips/{IP}/ui/*.cjs 的 functions 导出提供 API,通过 global.{IP}.{函数名}() 调用。
| 外设 | 文件 | 主要 API |
|---|---|---|
| GPIO | ips/GPIO/ui/*.cjs | 引脚管理、数据获取、参数映射 |
| DMA | ips/DMA/ui/*.cjs | DMA 通道管理、配置获取 |
| NVIC | ips/NVIC/ui/*.cjs | 中断筛选、优先级管理 |
| ADC | ips/ADC/ui/*.cjs | 模式校验、通道管理 |
详细 API 请参阅 函数 章节。
生命周期回调
| 回调 | 触发时机 | 参数 |
|---|---|---|
on__mounted | 外设加载完成后 | 无 |
on__change | 配置项值变化时 | { id, value, oldValue, path } |
on__enableChange | 外设使能状态变化时 | 无 |
on__tableAdd | 表格新增行时 | { body, row } |
on__tableDel | 表格删除行时 | { body, row } |
@get: 响应式表达式
在 ui.cjs 中,@get: 表达式用于动态引用其他节点或外设的值:
// 引用当前外设的参数值
"@get: $root.Mode.value"
// 引用时钟树节点的输出频率
"@get: $clock['HXTAL'].outclk"
// 引用其他外设的参数
"@get: USART1.BaudRate.value"
// 计算表达式
"@get: $parent.inclk * parseInt($parent.selected.label.replace('x', ''))"
// 条件判断
"@get: $root.NbrOfConversion.value <= 1"
