问问题尽可能描述清楚,附截图log信息。demo_console发命令是注意不能勾选换行。
问问题尽可能描述清楚,附截图log信息。demo_console发命令是注意不能勾选换行。
/*****************************************************************************
*
* File Name : main.c
*
* Description: main
*
* Copyright (c) 2014 Winner Micro Electronic Design Co., Ltd.
* All rights reserved.
*
* Author : dave
*
* Date : 2014-6-14
*****************************************************************************/
#include "wm_include.h"
#define USER_TASK_QUEUE_SIZE 1
#define USER_TASK_QUEUE_TEST 0x01
static tls_os_queue_t *user_task_queue = NULL;
static OS_STK TaskStk1[512];
static OS_STK TaskStk2[512];
static void user_task1(void)
{
while(1)
{
printf("---> send msg\r\n");
// 发送队里消息
tls_os_queue_send(user_task_queue, (void *)USER_TASK_QUEUE_TEST, 0);
tls_os_time_delay(HZ);
}
}
static void user_task2(void)
{
void *msg;
tls_os_status_t ret;
for ( ; ; )
{
// 接收队里消息
ret= tls_os_queue_receive(user_task_queue, (void **)&msg, 0, 0);
if (ret == TLS_OS_SUCCESS)
{
switch((u32)msg)
{
case USER_TASK_QUEUE_TEST: // 收到指定的消息
printf("---> received msg\r\n");
break;
default:
break;
}
}
}
}
void UserMain(void)
{
printf("\n user task \n");
// 创建task1用于发送队列消息
tls_os_task_create(NULL, "task1",
( void (*))user_task1,
NULL,
(void *)TaskStk1, /* task's stack start address */
sizeof(TaskStk1), /* task's stack size, unit:byte */
31,
0);
// 创建task2用于接收队里消息
tls_os_task_create(NULL, "task2",
( void (*))user_task2,
NULL,
(void *)TaskStk2, /* task's stack start address */
sizeof(TaskStk2), /* task's stack size, unit:byte */
32,
0);
// 创建消息队列
tls_os_queue_create(&user_task_queue, USER_TASK_QUEUE_SIZE);
#if DEMO_CONSOLE
CreateDemoTask();
#endif
//用户自己的task
}
设置中断优先级就可以了,默认硬件中断都是最高优先级,也可自行调整。
任务不要挂起,在任务里面等待信号量即可。
批量出货esd管子是随芯片赠送的哦
电源的话,分开设计会好些,地的话只有底部焊盘一个地。
可以支持,SDK里面有两套蓝牙协议栈,默认用的是NimBLE蓝牙协议栈,只支持BLE,而另外一个蓝牙协议栈支持BT和BLE,相对编译后的固件也会大一些,可以通过宏定义选择。两个蓝牙协议栈分别参考以下两个文档:
tls_gpio_write比tls_bitband_write考虑的东西相对多一些,所以判断语句也会多一些,参数也更少更加方便用户调用,相对效率比后者低一些,如果不考虑效率用tls_gpio_write即可。
W80X系列芯片,通过串口下载的fls固件包含secboot.img(启动引导程序)和user.img(用户程序)两部分组成。
而CK-LINK下载时,只会更新user.img,所以下载时不能勾选擦除选项,否则会把secboot引导程序擦除掉,导致即使烧录成功也启动不了,打印ccc。
如果芯片是空片,或有擦除过flash(串口一直打印ccc),则应当先通过串口下载一次.fls格式的固件后,再将CDK参考下图选项配置,再通过CK-LINK下载,即可解决烧录启动不了问题。
log截图看下,大概率内存没有释放导致的。
可以通过以下接口动态更改CPU频率
extern void tls_sys_clk_set();
tls_sys_clk_set(CPU_CLK_240M);
经典蓝牙音频使用效果不好,声音会断断续续,所以都不建议客户使用。
截图截全些,没有截到关键错误信息。
问 W800-SDK编译发送命令报错