635|1

220

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

【安信可BW16-Kit】+ 定时器 [复制链接]

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

代码:

// bool isLightOn = false; // 灯光状态,默认关闭
unsigned long previousMillis = 0; // 上一次变换状态的时间
unsigned long interval = 1000; // 每个状态之间持续的时间间隔,默认1秒
unsigned int isLightOn=0; //变量定义位置吗,有点不懂

void setup() {
  pinMode(PA13, OUTPUT);
  Serial.begin(115200); // 初始化串口
  // digitalWrite(PA13, true);
}

void loop() {
  unsigned long currentMillis = millis(); // 获取当前运行时间
  int setTime=0;
  // Serial.println(currentMillis);

  if(Serial.available() > 0) { // 如果串口有可用数据
    setTime = Serial.parseInt(); // 从串口读取设置的定时时间
    interval = setTime * 500; // 将设置的时间转换为秒
    Serial.print("time set!\r\n");
  }

 if(currentMillis - previousMillis >= interval) { // 如果超过设定的时间间隔
    previousMillis = currentMillis; // 更新上次状态变换的
    Serial.print("led change!\r\n");
    isLightOn +=1; // 切换灯光

    if(isLightOn%2==0) {
     digitalWrite(PA13, HIGH);
    Serial.print("led on ");
    } else {
     digitalWrite(PA13, LOW); // 关闭灯光
    Serial.print("led off ");
    }
  }
}

串口输出记录:

 

视频:

6621cd418719252ed3770e7f8ee1fbd2

 

安信可BW16-Kit的TIM(Timer,定时器)功能允许开发者在指定的时间间隔内执行特定的任务或操作。需要精确控制时间的应用来说非常有用,定时切换LED状态、定时发送数据等。

在BW16-Kit中,通过配置和使用定时器来实现定时任务。通常,先选择一个可用的定时器,并根据需要设置其工作模式(如单次触发或周期触发)、分频系数、计数初值等参数。一旦定时器被正确配置并启动,它将在指定的时间间隔后触发一个中断,可以在中断服务函数中执行相应的任务。

要使用BW16-Kit的TIM功能,需要熟悉其SDK(软件开发工具包)或相关文档,了解如何配置和使用定时器。SDK中通常会提供定时器的初始化函数、配置函数以及中断处理函数的示例代码,你可以参考这些代码来编写自己的定时任务。

此帖出自无线连接论坛

最新回复

赞!!!!看到楼主补的系列内容啦   详情 回复 发表于 2024-3-31 22:02
点赞 关注
 

回复
举报

1万

帖子

203

TA的资源

管理员

沙发
 

赞!!!!看到楼主补的系列内容啦

此帖出自无线连接论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表