【FR801xH】富芮坤FR801xH系统函数

00. 目录

文章目录

    • [00. 目录](#00. 目录)
    • [01. FR801xH概述](#01. FR801xH概述)
    • [02. FR801xH功能框图](#02. FR801xH功能框图)
    • [03. Version相关函数](#03. Version相关函数)
      • [3.1 get_SDK_compile_date_time](#3.1 get_SDK_compile_date_time)
    • [04. 系统函数](#04. 系统函数)
      • [4.1 system_power_off](#4.1 system_power_off)
      • [4.2 system_sleep_enable](#4.2 system_sleep_enable)
      • [4.3 system_sleep_disable](#4.3 system_sleep_disable)
      • [4.4 system_get_curr_time](#4.4 system_get_curr_time)
    • [05. 程序示例](#05. 程序示例)
    • [06. 附录](#06. 附录)

01. FR801xH概述

FR801xH 系列芯片是面向SOC(片上系统),易于快速开发的低功耗蓝牙芯片。基于 Freqchip 的蓝牙智能固件和协议栈的支持,完全兼容蓝牙 V5.3(LE 模式)协议。同时用户可以基于芯片内置的 ARM CorteM3 嵌入式 32 位高性能单片机开发各种应用程序。

蓝牙智能固件包括 L2CAP 服务层协议、安全管理器 (SM)、属性协议(ATT)、通用属性配置文件 (GATT)和通用访问配置文件(GAP)。此外,还 支持应用程序配置文件,例如接近度、健康温度计、 心率、血压、血糖、人机界面设备(HID)和 SDK (包括驱动程序、OS-API 等)。SDK 还集成了用于网络应用程序的 SIG Mesh 协议。

采用 Freqchip 的创新技术,将 PMU(锂电池充电 器+LDO)、带 XIP 模式的 QSPI FLASH ROM、 I2C、UART、GPIO、ADC、PWM 集成在一块芯片中,为客户提供:

  • 竞争力的功耗
  • 稳定的蓝牙连接
  • 极低的 BOM 成本

02. FR801xH功能框图

03. Version相关函数

头文件:components/modules/platform/include/version.h

3.1 get_SDK_compile_date_time

c 复制代码
/*********************************************************************
 * @fn      get_SDK_compile_date_time
 *
 * @brief   used to trace SDK version, usage is following:
 *          char *data, *time;
 *          get_SDK_compile_date_time(&data, &time);
 *
 * @param   date    - the date string when SDK is compiled, such as "Apr 17 2020".
 *          time    - the time string when SDK is compiled, such as "18:51:13".
 *
 * @return  None.
 */
void get_SDK_compile_date_time(char **date, char **time);
功能:
	获取 SDK 编译时的日期和时间,用于版本追溯。
参数:
	date 存储编译日期的字符串所在地址的指针。
	time 存储编译时间的字符串所在地址的指针。
返回值:
	无

示例:

c 复制代码
char *data, *time;
get_SDK_compile_date_time(&data, &time);

04. 系统函数

头文件:components/driver/include/driver_system.h

4.1 system_power_off

c 复制代码
/*********************************************************************
 * @fn      system_power_off
 *
 * @brief   put the system into power off mode, GPIO or pmu interrupt can 
 *          power on system according user configurations.
 *
 * @param   aldo_bypass - set aldo working in bypass true save more power.
 *                        suggest user enable this function if power supply
 *                        is less than 3.3v.
 *
 * @return  None.
 */
void system_power_off(bool aldo_bypass);
功能:
	系统关机函数,调用该函数将系统至于关机状态,关机状态下用户可以配置按键唤醒或者各种 PMU 中断唤醒。从关机状态下醒来,系统状态寄存器(PMU 寄存器 0x9F)值为 0xc6	
参数:
	aldo_bypass 关机状态下 aldo 是否进入 bypass 模式,在这种模式下会更省电。建议供电电压小于 3.3v时启用该功能。
返回值:
	无

4.2 system_sleep_enable

c 复制代码
/*********************************************************************
 * @fn      system_sleep_enable
 *
 * @brief   enable system enter deep sleep mode when all conditions are satisfied.
 *
 * @param   None.
 *
 * @return  None.
 */
void system_sleep_enable(void);
功能:
	使能系统睡眠功能,默认状态下睡眠功能是使能的。睡眠使能后,软件调度器发现短时间无任务可做时会自动将系统置于睡眠状态,并且设定定时器在有任务要做前(比如有广播包要发送等)醒来,该流程用户无需介入。
参数:
	无
返回值:
	无

4.3 system_sleep_disable

c 复制代码
/*********************************************************************
 * @fn      system_sleep_disable
 *
 * @brief   disable system enter deep sleep mode.
 *
 * @param   None.
 *
 * @return  None.
 */
void system_sleep_disable(void);
功能:
	关闭系统的睡眠功能,关闭之后软件调度器将不再将系统置于睡眠状态
参数:
	无
返回值:
	无

4.4 system_get_curr_time

c 复制代码
/*********************************************************************
 * @fn      system_get_curr_time
 *
 * @brief   get how many milliseconds have passed after system start-up,
 *          and the value will loop back to 0 after reaching 83886079(0x4FFFFFF).
 *
 * @param   None.
 *
 * @return  None.
 */
uint32_t system_get_curr_time(void);
功能:
	获取系统从开机到调用该函数时已经运行过的时间,单位为 ms,当超过 858993456ms 后,将从 0 继续。
参数:
	无
返回值:
	系统已经运行的时间

05. 程序示例

示例:

c 复制代码
void peripheral_demo(void)
{
    char *data, *time;
    get_SDK_compile_date_time(&data, &time);
    co_printf("version data: %s time: %s\r\n", data, time);

    co_printf("system_get_curr_time: %d\r\n", system_get_curr_time());

    co_delay_100us(10 * 1000);
    
    co_printf("system_get_curr_time: %d\r\n", system_get_curr_time());

}

运行结果

shell 复制代码
******Connected******

******Start Auto Burn******
****************************************************
******CRC Success******

******Burn Success******
?version data: Jul 25 2024 time: 10:53:40
system_get_curr_time: 15
system_get_curr_time: 1015

06. 附录

相关推荐
wotaifuzao2 天前
(十)BLE GATT与ATT深度解剖-从属性表到CCCD-订阅收不到数据的终极答案
低功耗蓝牙·ble·nrf52·zephyr·gatt·cccd
YONYON-R&D3 天前
[特殊字符] 解决:蓝牙鼠标从其他电脑切回后“能扫到但连不上”
ble·蓝牙鼠标
dozenyaoyida11 天前
Zephyr BLE 上行链路源码拆解:一个空中报文怎么从 radio 跑到应用回调(NCS v3.2.1)
controller·嵌入式开发·ble·host·zephyr·协议栈·软链路层
less_1213812 天前
HarmonyOS WPS Open SDK:enableEdit 只读与可编辑打开模式
华为·sdk·harmonyos·wps·鸿蒙开发·文档编辑
less_1213813 天前
HarmonyOS WPS Open SDK:OpenFileRequest 构造参数与 sendRequest 打开链路
华为·sdk·harmonyos·wps·鸿蒙开发·文档编辑
dozenyaoyida13 天前
Zephyr BLE GATT Server 注册到收发调用链源码解析(NCS v3.2.1)
ble·zephyr·gatt·ble协议栈
羑悻的小杀马特15 天前
百度ASR+BRPC+ETCD高并发高可用架构搭建,C++客户端API封装+语音识别子服务注册发现+全链路测试调优终极指南!
架构·sdk·etcd·cmake·百度智能云·brpc·语音识别子服务
K成长日志16 天前
BLE不可连接状态--广播态
物联网·网络协议·蓝牙·低功耗·iot·ble
艾莉丝努力练剑16 天前
【AI大模型接入SDK】SSE协议
c++·学习·面试·大模型·sdk
less_1213820 天前
HarmonyOS WPS Open SDK:旧 HAR 迁移到统一接口联调指南
华为·sdk·harmonyos·wps·鸿蒙开发·文档编辑