【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. 附录

相关推荐
百锦再1 天前
Rider 全面解析:跨平台 .NET IDE 的核心技术与高效实践指南
linux·ide·.net·sdk·core·rider
__water5 天前
RHA《Unity兼容AndroidStudio打Apk包》
android·unity·jdk·游戏引擎·sdk·打包·androidstudio
千里马学框架2 个月前
想一想android桌面的未读计数角标应该如何设计呢?
android·framework·sdk·角标·桌面角标·未读计数角标·华为桌面
YHPsophie2 个月前
2.4g芯片引脚功能
芯片·蓝牙芯片·ble·亿胜盈科·2.4g芯片
DONSEE广东东信智能读卡器2 个月前
鸿蒙系统使用ArkTS开发语言支持身份证阅读器、社保卡读卡器等调用二次开发SDK
二次开发·sdk·arkts·鸿蒙·身份证阅读器·社保卡读卡器
jiang_bluetooth2 个月前
低功耗蓝牙BLE的通信可靠性分析
蓝牙·低功耗蓝牙·ble
ClkLog-开源埋点用户分析3 个月前
全开源、私有化部署!轻量级用户行为分析系统-ClkLog
开源·开源软件·sdk·用户画像·埋点分析
_唐浮4 个月前
【HarmonyOS Next】三天撸一个BLE调试精灵
华为·harmonyos·ble
诸葛悠闲4 个月前
蓝牙4.0BLE协议栈中串口应用详解
ble