摘要: Mounriver Studio Ⅰ 编译器 Mounriver Studio更改内部文件夹路径后移植报错的解决方法 Mounriver Studio编译器在当前工程中添加文件夹后编译报错问题的解决方法 Mounriver Studio编译器中打印函数printf和LOG对应的RAM开销区别 Mou 阅读全文
posted @ 2023-03-08 14:44 oTvTo 阅读(3335) 评论(0) 推荐(0)
摘要: 一、LP模式 一级睡眠、保持连接 ①浅睡时间到达,可主动调用: ②idel_sleep_flag成立后,启动RF_SLEEP_EVENT, ③上报率切换任务解析: /******************************************************************* 阅读全文
posted @ 2026-04-23 12:18 oTvTo 阅读(48) 评论(0) 推荐(0)
摘要: CH572/CH570 CH571/CH573 CH579 CH582/CH583 CH591/CH592 CH584/CH585 蓝牙版本 V5.0 V4.2 V4.2 V5.0 V5.3 V5.3 蓝牙协议 BLE 蓝牙速率 1Mbps、2Mbps 未标注 未标注 2Mbps、1Mbps、 50 阅读全文
posted @ 2026-04-21 16:10 oTvTo 阅读(16) 评论(0) 推荐(0)
摘要: USB CDC(Communications Device Class) 是一种让 USB 设备模拟传统串口(COM口)的标准协议,其中 CDC-ACM 子类最常用于虚拟串口通信。它结合了 USB 的高速、即插即用优势与串口的简单易用性,广泛应用于嵌入式调试、数据采集等场景。 在开发WCH蓝牙系列芯 阅读全文
posted @ 2026-04-17 17:10 oTvTo 阅读(52) 评论(0) 推荐(0)
摘要: USB速度可由这个寄存器修改控制实现; 一、高速模式: R8_USB2_BASE_MODE = USBHS_UD_SPEED_HIGH; USB设备描述符中,协议版本写为V2.0,代表期望主机采用高速通讯 使用UsbTreeView软件可查看设备速度,下图可见已切换成功 二、全速模式: R8_USB 阅读全文
posted @ 2026-04-16 10:49 oTvTo 阅读(14) 评论(0) 推荐(0)
摘要: 一、HS初始化配置: 二、中断服务函数中增加标志位判断 阅读全文
posted @ 2026-04-13 15:16 oTvTo 阅读(12) 评论(0) 推荐(0)
摘要: 在 MounRiver Studio(MRS)中,编译器生成的 .map 文件 (也称为链接映射文件)是一个重要的文本报告,它详细记录了程序在内存中的布局和分配情况。通过分析这个文件,我们可以深入了解和优化嵌入式项目的资源使用。 在沁恒的一些蓝牙芯片中,例如CH572、CH592这些小资源量芯片,开 阅读全文
posted @ 2026-03-26 14:20 oTvTo 阅读(32) 评论(0) 推荐(0)
摘要: 1、下面操作需放到蓝牙库初始化之后,例如CH59x_BLEInit、CH58x_BLEInit之后, void MAP_CHECK(void) { extern int8_t BLE_CheckHoppingMap( int8_t rssi, uint8_t map[] ); // 需要检测的通道, 阅读全文
posted @ 2026-03-24 16:31 oTvTo 阅读(22) 评论(0) 推荐(0)
摘要: 一般地,如果蓝牙从机设备是自己开发的程序,并且可以拿到关键的notify的句柄值,便可以跳过枚举流程,连接后直接进行通讯测试(一般用于产测环节)。 一、准备工作 1、在不知道从机设备的通知句柄时,以CH585的HID_Keyboard例程为例,找到HidDev_WriteAttrCB函数,在其中增加 阅读全文
posted @ 2026-03-24 16:04 oTvTo 阅读(35) 评论(0) 推荐(0)
摘要: 参考一代编译器生成方式:MRS生成LIB(.a)库文件 一、将不需要包含的文件夹及文件,点击右键,选择排除编译 二、点击属性,打开配置界面 三、如下图进行配置,配置完毕点击应用 四、退出配置界面后,点击全部编译 五、打开obj文件夹,LIB文件已生成在其中 阅读全文
posted @ 2026-02-26 14:39 oTvTo 阅读(38) 评论(0) 推荐(0)
摘要: __attribute__ 是 GCC/Clang 编译器提供的一个扩展特性(并非标准 C/C++ 语法),用于给函数、变量、类型等添加额外的编译期属性,编译器会根据这些属性做优化、检查或约束。它的基本语法是: // 函数/变量/类型 后加属性 声明 __attribute__((属性1, 属性2) 阅读全文
posted @ 2026-02-24 19:49 oTvTo 阅读(40) 评论(0) 推荐(0)