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