海洋cms怎么做电影网站,php用什么做网站服务器吗,wordpress猫咪主题,wordpress 安装后空白本文主要介绍了 沁恒蓝牙芯片 CH58x 的flash 分区与数据存储管理#xff0c;利用随机数作为蓝牙mesh地址#xff0c;蓝牙mesh采用自组网 #x1f4cb; 个人简介
#x1f496; 作者简介#xff1a;大家好#xff0c;我是喜欢记录零碎知识点的小菜鸟。#x1f60e;#… 本文主要介绍了 沁恒蓝牙芯片 CH58x 的flash 分区与数据存储管理利用随机数作为蓝牙mesh地址蓝牙mesh采用自组网 个人简介 作者简介大家好我是喜欢记录零碎知识点的小菜鸟。 个人主页欢迎访问我的 Ethernet_Comm 博客主页 支持我点赞收藏⭐️留言 系列专栏沁恒蓝牙mesh二次开发 格言写文档啊不是写文章重要的还是直白 【沁恒蓝牙mesh】CH58x flash分区之利用随机数作为蓝牙mesh地址 1. 利用随机数作为mesh地址1.1 代码逻辑思路1.2 测试结果1.3 代码解析 1. 利用随机数作为mesh地址
【沁恒蓝牙mesh】CH58x flash分区与数据存储管理
1.1 代码逻辑思路
生成 2字节的随机数随机数 与 0x7000相或 保证单播地址范围 0- 0x7fff读取flash地址若为空则写入若不为空则用上一次的地址
1.2 测试结果
1️⃣ :初次烧录 2️⃣ :节点复位之后读取到flash不为空用flash中存取的地址 3️⃣ :测试flash中的随机数值可以看到是小端存储 1.3 代码解析 uint32_t randNum tmos_rand();//EEPROM_READ(DATA_FLASH_SIZE - 4, (uint8_t *)node_addr, 2);EEPROM_READ(0x3004, (uint8_t *)node_addr, 2);APP_DBG(EEPROM_READ___ Mesh network node_addr is : 0x%04x ,node_addr);if( 0 node_addr || 0xffff node_addr){APP_DBG(node_addr flash is null,need to write data to flash);randNum randNum % 1000;randNum | 0x7000;node_addr randNum;EEPROM_WRITE(0x3004, (uint8_t *)node_addr, 2);APP_DBG(EEPROM_WRITE Mesh network node_addr is : 0x%04x ,node_addr);}