更新时间:2024-11-20 08:51:23下载pdf
Board 层包含芯片原厂提供的 SDK,以及用于对接涂鸦体系的适配文件,即蓝牙抽象层 bal 和硬件抽象层 hal。
该层封装了蓝牙 Beacon 收发函数 bal_beacon_txrx(u32 tx_cnt, u32 rx_cnt)
,实现 Beacon 的收发。
函数名 | bal_beacon_txrx |
---|---|
功能概述 | 实现 Beacon 的收发 |
参数 | tx_cnt:37 , 38 , 39 信道轮流发送 Beacon 数据的总次数(需要为 3 的倍数) rx_cnt:37 , 38 , 39 信道轮流接收 Beacon 数据的总次数(需要为 3 的倍数) |
返回值 | 无 |
备注 | 待发送 Beacon 数据放在 tx_buf[31] 中(参考代码中直接使用,请勿改动) 接收到的 Beacon 数据放在 rx_buf[39] 中(参考代码中直接使用,请勿改动) |
注意:
- 如果收发不能并行,调用上述函数,先发送,再接收。
- 如果条件允许,可以一直开接收,在接收回调函数中放置;
- 如果条件允许,发送按照最小时间间隔发送。
Tuya Beacon 协议栈中的防重放序列号,加密 key 等信息需要借助一个 256 字节任意位置读写的非易失存储驱动,和一个用来给协议栈提供定时逻辑的 us 级别的系统滴答驱动,因此用户按照以下要求实现五个函数。
函数名 | hal_storage_256_init |
---|---|
功能概述 | 初始化一块大小为 256 字节的非易失存储驱动 |
参数 | 无 |
返回值 | 0 |
备注 | 按照要求实现该函数 |
函数名 | hal_storage_256_read_bytes |
---|---|
功能概述 | 从某地址空间读取某长度字节的数据 |
参数 | u16 offset:地址偏移量 u8* pdata:读取的数据 u8 len:读取数据的字节数 |
返回值 | 0 |
备注 | 按照要求实现该函数,建议采用双备份方式 |
函数名 | hal_storage_256_write_bytes |
---|---|
功能概述 | 将某长度字节的数据写入某地址空间 |
参数 | u16 offset:地址偏移量 u8* pdata:指向需要写入的数据 u8 len:写入数据的字节数 |
返回值 | 0 |
备注 | 按照要求实现该函数,建议采用双备份方式 |
函数名 | hal_clock_get_system_tick |
---|---|
功能概述 | 获取当前 tick |
参数 | 无 |
返回值 | tick 值 |
备注 | 按照要求实现该函数 |
函数名 | hal_clock_time_exceed |
---|---|
功能概述 | 计算当前 tick -old_tick 是否超过了设定时间 span_us ,超过则返回 true (非阻塞) |
参数 | u32 ref:old_tick ,设定时间时的 tick 值u32 span_us:设定的定时时间 |
返回值 | true :1false :0 |
备注 | 按照要求实现该函数 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈