esp8266学习笔记(4)——pwm(呼吸灯)

本文是ESP8266学习笔记第四篇,主要介绍如何使用PWM驱动呼吸灯。需要注意ESP8266的PWM驱动不能与硬件定时器同时使用,且不支持Deep Sleep模式。程序中详细讲解了pwm模块的配置、初始化以及定时器回调函数的实现,以创建一个2秒周期的呼吸灯效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流水灯就不搞了,直接呼吸灯吧,8266有现成的pwm驱动文件,直接调用他的接口就可以了。有一个要注意的是不能和硬件定时器同时用,因为它们共⽤了同⼀个硬件定时器。PWM 不⽀持进⼊ Deep sleep 模式,也请勿调用wifi_set_sleep_type(LIGT_SLEEP); 将⾃动睡眠模式设置为 Light-sleep。因为 Lightsleep 在睡眠期间会停 CPU,停 CPU 期间不能响应 NMI 中断。
这里是用pwm接口和软件定时器实现一个呼吸灯。

pwm 模块

  • pwm各通道的 GPIO 硬件参数配置
uint32	io_info[][3]	= {
  {PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12,12},};//可同时配置多通道,这里就用一个通道。
  • 各通道初始pwm
uint32 pwm_duty[1]= {0};
  • pwm初始化
pwm_init(1000,pwm_duty,1,io_info);//周期1000us,也就是1khz的频率,单通道初始占空比0

定时器回调函数

void pwm_run(void)
{
	static uint16 duty=0;//占空比
	static flag=false;//变化标志位
	if(duty<=0)
	{
		duty=0;
		flag=false;
	}
	else if(duty>=22200)
	{
		duty=22200;
		flag=true;
	}
	if(!flag)
	{
		duty+=5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值