SDK就是官方提供的demo,包含有芯片的基本例程,可以直接编译,以及在此基础上进行修改。W800和W801可以使用同一套SDK,直接去官网下载最新的W800的SDK就好。
烧写软件下载
官网开发工具选项中选择下载W800串口烧录工具,并解压到任意路径。
三、首次编译与烧写
路径
双击后缀名为.cdkws的文件
打开后差不多是这样子的
右键工程文件,然后build
烧写文件在bin\w800路径下面,后缀为.fls
打开烧写工具后,选择串口波特率并打开,选择固件,后点击下载即可完成烧录
四、程序设计
- 打开wm_demo.h文件,做出如下修改
- 打开main.c文件,做出如下修改
void UserMain(void)
{
My\_task();
}
- My_task() 函数放在 wm_demo_console_task.c 文件里面
- 打开后,现在开头申明宏定义如下
#define MYBLE\_TASK\_SIZE 2048
static OS_STK MyBLETaskStk[MYBLE_TASK_SIZE];
#define MYBLE\_TASK\_PRIO 32
- 然后在末尾添加两个新函数
void my\_ble\_msg\_task(void \*sdata)
{
//传过来的消息队列指针,这里定义的是u8类型的
u8 \*msg;
//蓝牙发送数据
u8 send_data[20] = {0x00};
//让开发板以server的身份运行起来
demo\_bt\_enable();
while(bt_adapter_state == WM_BT_STATE_OFF)
{
tls\_os\_time\_delay(5000 /HZ);
}
tls\_os\_time\_delay(5000 /HZ);
demo\_ble\_server\_on();
printf("ble ready ok \r\n");
//初始化IO口
tls\_gpio\_cfg(WM_IO_PB_05, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
tls\_gpio\_cfg(WM_IO_PB_25, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
tls\_gpio\_cfg(WM_IO_PB_26, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
for(;;)
{
tls\_os\_queue\_receive(ble_q,&msg, 0, 0);
//打印ble收到数据的长度
printf("ble revice len:%d\n",msg[0]);
//依次打印收到的ble数据
for(u8 i=0;i<msg[0];i++){
printf("%x ",msg[i+1]);
//收到的数据存到send\_data buff
send_data[i] = msg[i+1];
}printf("\n");
if(msg[1] != 0)
tls\_gpio\_write(WM_IO_PB_05,1);
else
tls\_gpio\_write(WM_IO_PB_05,0);
if(msg[2] != 0)
tls\_gpio\_write(WM_IO_PB_25,1);
else
tls\_gpio\_write(WM_IO_PB_25,0);
if(msg[3] != 0)
tls\_gpio\_write(WM_IO_PB_26,1);
else
tls\_gpio\_write(WM_IO_PB_26,0);
//返回收到的数据
printf("send state:%d \r\n",tls\_ble\_server\_demo\_api\_send\_msg(send_data,3));
}
}
void My\_task(void)
{
if(tls\_os\_queue\_create(&ble_q, 32)!=TLS_OS_SUCCESS)
{
printf("create queue fail\n");
return;
}
tls\_os\_task\_create(NULL, NULL,
my_ble_msg_task,
NULL,
(void \*)MyBLETaskStk, /\* task's stack start address \*/
MYBLE_TASK_SIZE \* sizeof(u32), /\* task's stack size, unit:byte \*/
MYBLE_TASK_PRIO,
0);
}
- 修改蓝牙数据接受程序
打开wm_ble_server_api_demo.c文件,对gatt_svr_chr_demo_access_func函数作如下修改
tls\_os\_queue\_t \*ble_q = NULL;
//重新定义一个数据uff
//ble\_data[0] 表示数据的长度,往后依次为数据
u8 ble_data[255] = {0};
//add by zxx end
static int
gatt\_svr\_chr\_demo\_access\_func(uint16\_t conn_handle, uint16\_t attr_handle,
struct ble\_gatt\_access\_ctxt \*ctxt, void \*arg)
{
int i = 0;
struct os\_mbuf \*om = ctxt->om;
switch (ctxt->op) {
case BLE_GATT_ACCESS_OP_WRITE_CHR:
while(om) {
if(g_ble_uart_output_fptr)
{
g\_ble\_uart\_output\_fptr((uint8\_t \*)om->om_data, om->om_len);
}else
{
//print\_bytes(om->om\_data, om->om\_len);
//add by zxx start
if(om->om_len > 200)
{
printf("ble om->om\_len is too long:%d return 0 please check send data length...\r\n",om->om_len);
return 0;
}
ble_data[0] = om->om_len;
//将数据转存到buff中,ble\_data[0]是数据的长度,长度必须小于255-1,否者下列循环会出问题。
for (u8 i = 0; i < om->om_len; i++) {
ble_data[i+1] = om->om_data[i];
}
if(om->om_len>0)
{
tls\_os\_queue\_send(ble_q,ble_data, 0);
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/61a5bdcf0e48a32dd1ff1fcffae9fe68.png)
![img](https://img-blog.csdnimg.cn/img_convert/5691be98363ed98b9d3a38c4194f4955.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/ad72ab649a0e3ddf49eda92991dcc02e.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
![img](https://img-blog.csdnimg.cn/img_convert/8e283ca5efcc71f0e13667cabac37144.png)
![img](https://img-blog.csdnimg.cn/img_convert/f18f780120518dd3d163644e480214dc.png)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**
<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
嵌入式)**
<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**