联盛德W801开发板流水灯示例
📺📽🎞🎬本实验通过利用开发板中间的7个led,控制对应的IO实现流水灯效果。

📜HLK-W801 32位WiFi蓝牙双模SoC开发板

HLK-W801简介:
- 参考规格书以及资料:
https://h.hlktech.com/Mobile/download/fdetail/170.html
MCU – WinnerMicro W801 32 位阿里XT804 微控制器 @ 240 MHz,配备2MB闪存、288KB RAM、FPU、DSP、加密引擎、2.4 GHz 无线电连接802.11b/g/n WiFi 4 up to 150 Mbps 支持station(客户端模式),softAP(软接入点模式)和station+soft AP模式,WPA2安全
- 支持 BT/BLE 双模工作模式,支持 BT/BLE4.2 协议。
- 1 个 SDIO 主机,支持 SDIO 2.0、SDHC、MMC 4.2
1x SDIO 设备高达 200 Mbps
- 高达 6x UART、1x I2C
- 1x SPI 从机高达 50 MHz,1x 主/从 SPI
- 支持 4×32 接口的 LCD 控制器
- 1 个 I2S
- 高达 4x ADC(16 位,1KHz 采样率)
- 多达 44 个 GPIO,5 个 PWM
- 多达 15 个触摸传感器
- ISO/IEC 7816 智能卡接口
- 调试接口 – CH340 通过USB-C 端口
- 复位和启动按钮,7 个用户 LED,包括两个连接到 PWM 功能的引脚
- 电源:通过USB-C端口提供5V电压
- 功耗 : 待机:W801 MCU 小于 10 uA,而不是开发板本身
- 尺寸 – 约 70 x 26 mm
🛠开发工具以及示例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生成有影响。

- 🌿生成的串口烧录文件格式为:
.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: 定时器任务流水灯
*
* 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();
}
762

被折叠的 条评论
为什么被折叠?



