問問題盡可能描述清楚,附截圖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編譯發送命令報錯