联盛德W801开发板流水灯示例
📺📽🎞🎬本实验通过利用开发板中间的7个led,控制对应的IO实现流水灯效果。
📜W801 32位WiFi蓝牙双模SoC开发板
🛠开发工具以及示例Demo工程
- 参考:《W801 Demo新手开发使用》
链接:https://pan.baidu.com/s/1h0-CKcGTYCN6XXIA4U5Ejw
提取码:p0jw
upgrade_tools_v1.4.12.zip
:串口升级工具,下载升级程序镜像;
cdk_windows_V2.10.1-20210916-1115.zip
:CDK集成开发工具,编译程序生成烧录文件;
- W801 demo源代码:
wm_sdk_w80x_20211115.zip
⛳注意事项
- 📌工程编译过一次后,输出名称不要随意改动。
- 🌿生成的串口烧录文件格式为:
.fs
后缀名的。
烧录文件在这个路径下:
- 🌿程序烧录
📝流水灯示例代码
🌴在Demo源代码文件夹找到:C:\Users\Administrator\Downloads\wm_sdk_w80x_20211115\wm_sdk_w80x_20211115\tools\w800\projects\SDK_Project\project\CDK_WS\CDK_WS.cdkws
/*****************************************************************************
*
* 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"
#include "wm_timer.h"
//#define DEMO_TIMER
unsigned char led[]={WM_IO_PB_05,WM_IO_PB_25,WM_IO_PB_26,WM_IO_PB_18,WM_IO_PB_17,WM_IO_PB_16,WM_IO_PB_11};
u8 CNT=0;
static void demo_timer_irq(u8 *arg)
{
for(int i=0;i<7;i++)
{
tls_gpio_write(led[i],1);
}
if(CNT<7)
{
CNT++;
}
else
{
CNT = 0;
}
tls_gpio_write(led[CNT],0);
printf("timer irq\n");
}
int timer_demo(void)
{
u8 timer_id;
struct tls_timer_cfg timer_cfg;
timer_cfg.unit = TLS_TIMER_UNIT_MS;
timer_cfg.timeout = 1000;//定时时间单位ms,1000 ->1S
timer_cfg.is_repeat = 1;
timer_cfg.callback = (tls_timer_irq_callback)demo_timer_irq;
timer_cfg.arg = NULL;
timer_id = tls_timer_create(&timer_cfg);
tls_timer_start(timer_id);
printf("timer start\n");
return WM_SUCCESS;
}
void UserMain(void)
{
printf("\n Hello World! \r\n");
#if DEMO_CONSOLE
CreateDemoTask();
#endif
//用户自己的task
for(int i=0;i<7;i++)
{
tls_gpio_cfg(led[i], WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_PULLHIGH);//将GPIO口设置为输出模式,上拉
}
timer_demo();
}