(待完善)
本文目的
- WCH ARM核的BLE芯片只提供了MDK的BLE SDK, 有些时候,因为版权原因,我们需要使用GCC 这类自由软件去做开发
- 本文暂时只针对ch579,ch578
原理
WCH的BLE都提供了两种开发方式:带协议栈编译和APP单独编译(https://www.cnblogs.com/iot-fan/p/14327272.html)而APP单独编译模式其蓝牙协议栈是以预编固件直接烧录进去的,在编译时候不对BLE的库进行链接,这种情况下开发蓝牙就相当于开发普通的工程一样.
CH579/578 MRS蓝牙工程实现
准备工作
- 熟悉MRS的使用tips:https://www.cnblogs.com/iot-fan/p/16118604.html
- 下载一个CH579的官网最新例程 https://www.wch.cn/downloads/CH579EVT_ZIP.html
- 关于ch579 蓝牙的两种编译方式:https://www.cnblogs.com/iot-fan/p/14327272.html
实现步骤
1,新建个ch579的MRS工程
可以用MRS的新建工程去新建,为了避免误导大家,这里就不细说了,大家可以直接用附件工程
2,加入源码
新建的工程是只是个普通的外设使用的工程,我们可以按照keil的目录把BLE的源码加到工程里面(不需要添加链接加库)
3,修改工程代码
<见附件工程>
- 启动文件(步骤1新建的工程有提供)
- PRINT的重定向
- 结构体的packed关键字
- LD文件(见附件 CH579.ld)
4,加入宏
加入宏的方法可以参考MRS使用Tips:https://www.cnblogs.com/iot-fan/p/16118604.html
其他的宏可以参考WCH官方CH573以及CH583的工程
CH57xBLE_ROM
DEBUG=1
5,注意的地方
- PRINT的重定向,KEIL和基于GCC的MRS是不太相同的,WCH的PRINT的重定向在诸如ch57x_sys.c或者ch58x_sys.c里面
- 一些函数的定义可能不太一样 如nop函数
- 一些关键字可能不太一样,如结构体的packed关键字(WCH官方的CH579 例程截止当前EVT2.6 都还是针对keil的版本),尤其定义所有寄存器的头文件 CH579SFR.h )
6,编译
20:15:51 **** Build of configuration obj for project ch57x_ble_uart_mrs_app_only_test ****
make -j8 all
Memory region Used Size Region Size %age Used
FLASH: 11636 B 250 KB 4.55%
XRAM: 8 KB 8 KB 100.00%
RAM: 1900 B 8 KB 23.19%
text data bss dec hex filename
11356 280 9812 21448 53c8 ch57x_ble_uart_mrs_app_only_test.elf
20:15:52 Build Finished. 0 errors, 0 warnings. (took 1s.133ms)
7,下载&运行
- 下载协议栈:CH579BLE_ROM.hex
- 下载app部部分 ch57x_ble_uart_mrs_app_only_test.hex
上电运行:
CH579 build with MRS
CH57x_BLE_LIB_V2.00
Initialized..
Advertising..
附件工程
https://gitee.com/iot-fan/iot-fan_at_cnblogs/tree/master/CH577_CH578_CH579/AN/CH579EVT_2.6_ble_mrs
# CH32F208 MRS蓝牙工程实现
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!