这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【换取手持数字示波器】+安信可BW16-Kit定时器功能分享

共1条 1/1 1 跳转至

【换取手持数字示波器】+安信可BW16-Kit定时器功能分享

助工
2024-04-01 20:08:18   被打赏 20 分(兑奖)     打赏

安信可BW16-Kit开发板集成了丰富的功能和接口,可以方便地进行各种开发应用。其中,使用TIM (Timer) 来控制LED的功能,可以通过编写相应的代码来实现。下面是一个简单的示例,展示了如何在安信可BW16-Kit上使用TIM来控制LED的闪烁。

先认识一下BW16。

image.png

BW16-Kit 是针对 BW16 模组设计的开发板。BW16 是博安通开发的一款基于

BW16-Kit 是针对 BW16 模组设计的开发板。BW16 是博安通开发的一款基于

RTL8720DN 芯片的双频 Wi-Fi+蓝牙 SoC 模组。BW16 支持双频(2.4GHz 或 5GHz)

WLAN 和低功耗蓝牙 5.0 ,集成了 ARM V8(兼容 Cortex-M4F)高性能 MCU、ARM

V8M(兼容 Cortex-M0)低功耗 MCU、WLAN(802.11 a / b / g / n)、MAC,蓝牙基带

和 RF 基带,并提供了一组可配置的 GPIO 口,用于不同外围设备的控制。

主要参数:

开发板型号 BW16-Kit

适合模组 BW16

封装 DIP-22(2.54 间距标准排针)

尺寸 50.4*25.4(±0.2)mm

天线形式 板载 PCB 天线

频谱范围 2400-2483.5MHz 或 5180-5825MHz

WiFi 支持 802.11 a/b/g/n

蓝牙 BLE 5.0

工作温度 -40 °C ~ 85 °C

存储环境 -40 °C ~ 125 °C , < 90%RH

供电范围 供电电压 5V 电流大于 500mA

支持接口 UART/GPIO/ADC/PWM/IIC/SPI/SWD

可用 IO 口数量 13 个 GPIO(包括 TX0/RX0 及 TX1/RX1)

安全性 AES / DES / SHA

Flash 默认 2MB,可选 4MB

外形:

image.png

接口定义:

image.png原理图:

image.png代码:

// 定义一个布尔变量,表示灯光的开关状态,默认关闭  
bool isLightOn = false;   
  
// 上一次灯光状态变换的时间,初始为0  
unsigned long previousMillis = 0;   
  
// 每个状态之间持续的时间间隔,默认1秒(1000毫秒)  
unsigned long interval = 1000;   
  
// 注意:这里定义了一个无符号整型变量isLightOn,与上面的布尔变量isLightOn重名了,  
// 这会导致编译错误,因为同一个作用域内不能有重名的变量。  
// 应该删除或重命名其中一个变量。  
unsigned int isLightOn = 0; // 变量定义位置错误,且与上面的bool变量重名  
  
void setup() {  
  // 设置PA13引脚为输出模式,用于控制灯光  
  pinMode(PA13, OUTPUT);  
    
  // 初始化串口通信,波特率为115200  
  Serial.begin(115200);   
  
  // // 打开灯光(此行已被注释,因此不会执行)  
  // digitalWrite(PA13, true);  
}  
  
void loop() {  
  // 获取当前程序运行的时间(以毫秒为单位)  
  unsigned long currentMillis = millis();   
  
  // 定义一个变量来存储从串口读取的定时时间,初始化为0  
  int setTime = 0;  
  
  // 如果串口有数据可读  
  if(Serial.available() > 0) {   
    // 从串口读取一个整数,并赋值给setTime  
    setTime = Serial.parseInt();   
      
    // 将读取的时间(可能是毫秒)转换为秒,并赋值给interval  
    interval = setTime * 500;   
      
    // 通过串口输出提示信息  
    Serial.print("time set!\r\n");  
  }  
  
  // 如果当前时间与上一次状态变换的时间之差大于或等于设定的时间间隔  
  if(currentMillis - previousMillis >= interval) {   
    // 更新上一次状态变换的时间  
    previousMillis = currentMillis;   
      
    // 通过串口输出提示信息  
    Serial.print("led change!\r\n");  
      
    // 切换灯光状态,这里使用无符号整型变量isLightOn来模拟开关状态  
    isLightOn += 1;   
  
    // 如果isLightOn是偶数(即0, 2, 4...),则打开灯光  
    if(isLightOn % 2 == 0) {  
     digitalWrite(PA13, HIGH);  
     Serial.print("led on ");  
    } else {  
     // 如果isLightOn是奇数(即1, 3, 5...),则关闭灯光  
     digitalWrite(PA13, LOW);   
     Serial.print("led off ");  
    }  
  }  
}

串口输出结果:

image.png

总结:

安信可BW16-Kit的TIM(Timer,定时器)功能允许开发者在指定的时间间隔内执行特定的任务或操作。需要精确控制时间的应用来说非常有用,定时切换LED状态、定时发送数据等。在BW16-Kit中,通过配置和使用定时器来实现定时任务。通常,先选择一个可用的定时器,并根据需要设置其工作模式(如单次触发或周期触发)、分频系数、计数初值等参数。一旦定时器被正确配置并启动,它将在指定的时间间隔后触发一个中断,可以在中断服务函数中执行相应的任务。要使用BW16-Kit的TIM功能,需要熟悉其SDK(软件开发工具包)或相关文档,了解如何配置和使用定时器。SDK中通常会提供定时器的初始化函数、配置函数以及中断处理函数的示例代码,你可以参考这些代码来编写自己的定时任务。 

上传不了视频。。。。。。。。。。。。。模组。

BW16 支持双频(2.4GHz 或 5GHz)
WLAN 和低功耗蓝牙 5.0 ,集成了 ARM V8(兼容 Cortex-M4F)高性能 MCU、ARM
V8M(兼容 Cortex-M0)低功耗 MCU、WLAN(802.11 a / b / g / n)、MAC,蓝牙基带和 RF 基带,并提供了一组可配置的 GPIO 口,用于不同外围设备的控制。




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]