Skip to content

先搞懂它是什么

  • API(应用程序接口):SDK 提供给应用的函数。本栏目以 SDK 源码的公开头文件drivers/lhal/includecomponents/ 各组件)为事实来源,按组件分类整理,共收录 1800+ 个 API
  • 统一套路:几乎所有驱动 API 都是“取设备句柄 → 初始化 → 操作 → 处理结果”四步,详见 内核与系统 API
  • 说明语言:功能说明以 SDK 头文件 doxygen 与驱动实现源码为依据;中文页为中文说明,英文页为英文原文。

芯片范围说明

本栏目以 Ai-M61 / Ai-M62(BL616/BL618) 为准。SDK 中的 BL616CL 对应安信可 Ai-M64 系列模组,其专属外设(如 touch v2、ADC v2、PEC、DSI、视频解码、DMA2D 等)已在对应分类中以「(仅 Ai-M64 支持)」标注,Ai-M61/Ai-M62 不支持这些外设。

API 分类索引

分类内容参考页
内核与系统设备句柄、中断、时钟、复位、定时器、多核同步内核与系统 API
基础外设GPIO/UART/SPI/I2C/ADC/PWM/Timer/DMA/Flash 等核心外设基础外设 API
多媒体显示(DBI/DSI/DVP/OSD/触摸)与音视频(I2S/AUADC/AUDAC/CAM/MJPEG)多媒体 API
安全加密AES/SHA/PKA/TRNG/ECDSA/DSA 等安全引擎安全加密 API
系统、存储与升级MTD/EasyFlash、FATFS/LittleFS、崩溃转储、OTA系统、存储与升级 API
FreeRTOS任务、队列、信号量、互斥锁、事件组、软件定时器FreeRTOS API
WiFi 与网络wifi_mgmr、fhost、lwIP SocketWiFi 与网络 API
BLE控制器、主机栈、GAP/GATT/连接BLE API
Shell 与日志串口命令行、bflog 日志分级Shell 与日志 API

使用套路(举一反三)

c
/* 1. 取设备句柄 */
struct bflb_device_s *dev = bflb_device_get_by_name("uart0");
/* 2. 初始化(配置模式/参数/速率) */
bflb_uart_init(dev, config);
/* 3. 操作(读/写/启动/停止) */
/* 4. 处理结果/状态 */

常见考点 / 面试题

SDK API 为什么都要先 bflb_device_get_by_name?

设备模型把“设备名 → 句柄(地址/中断/操作表)”统一管理,驱动 API 通过句柄工作,换实例或芯片时代码风格不变。

怎么快速找到某个外设的 API?

API 前缀即外设名(如 GPIO 是 bflb_gpio_*、UART 是 bflb_uart_*、Wi-Fi 是 wifi_mgmr_*、BLE 是 bt_*),按本栏目分类索引定位后再查对应头文件。

遇到问题?

如有其他问题,请到统一的提问与讨论区:Ai-Thinker Discussions

Released under the MIT License. Build Time 2026-09-11 14:52:23