STM32控制RGB灯WS2812求助

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-02
STM32 怎么通过修改PWM的占空比实现RGB灯的不同颜色

如果只要红色,那么只需要红色对应的管脚拉低即可,另外两个管脚保持高电平。
例如常见的6脚灯珠而言,1-G/2-R/3-B,因此你程序改成PE3、PE5输出高电平,PE4输出低电平就行了,暂不需要修改PWM占空比。

如果需要实现红灯不同亮度,再调节PWM占空比即可。

给你一个最简单的思路 CPU利用率不高但是可以完成
你上面写的我给你提供一个思路 你应该可以看的懂 看不懂追问
unsigned int key;
void main(void)
{
while(1)
{
switch(key)
{
case 0: LED0=!LED0;//你自己修改
delay_ms(200);
break;
case 1: LED1=!LED1;
delay_ms(200);
break;
case 2:LED2=!LED2;
delay_ms(200);
break;
default:
break;
}
void 在这里按键获取函数(void)
{
key=获取到的值; //没有按键按下的话是进入不到这里
}
}
}

首先楼主需要做几个事情:
1、确定板子上LED灯的引脚位置是属于哪个口PORTA~PORTE
2、例程内的端口是否与硬件上的端口一致。
3、LED的驱动电平是高电平还是低电平。
4、一个GPIO正常工作至少需要以下几点:
a、系统时钟已经配置并正常运行。
b、对应的GPIO时钟位已经打开(为了降低功耗,默认GPIO的时钟是不会打开的)。
c、对应的GPIO引脚已经正确配置(如果没有外上拉,应当配置为推挽输出)。
d、对应的GPIO引脚输出寄存器已经设置为对应的电平。
5、程序正常下载的板子上。
6、正常下载还不能使用,检查板子是否正常(电源电压是否达到要求?晶振是否起振?复位电平是否正确?)

  • STM32控制RGB灯WS2812求助
    答:1、确定板子上LED灯的引脚位置是属于哪个口PORTA~PORTE例程内的端口是否与硬件上的端口一致。LED的驱动电平是高电平还是低电平。一个GPIO正常工作至少需要以下几点:a、系统时钟已经配置并正常运行。2、一位网友做的,您可以借鉴一下://主功能接受:使用MCUSTM8S105C6的PWM通道2PC2来做呼吸灯已经验证OK...
  • STM32控制RGB灯WS2812求助
    答:1、确定板子上LED灯的引脚位置是属于哪个口PORTA~PORTE 2、例程内的端口是否与硬件上的端口一致。3、LED的驱动电平是高电平还是低电平。4、一个GPIO正常工作至少需要以下几点:a、系统时钟已经配置并正常运行。b、对应的GPIO时钟位已经打开(为了降低功耗,默认GPIO的时钟是不会打开的)。c、对应的GPIO引...
  • 51单片机控制RGB小灯绿色不亮会是什么问题?
    答:看你的RGB灯是什么灯 ,如果RGB灯带WS2812那你的单片机是控制不了的,因为51单片机的运算不够块,用STM32可以。如果你的RGB灯是普通的共阳或共阴极的灯 51是可以控制的 。RGB三个管脚分别控制就好啊。
  • 怎么样的水平可以从51转到stm32
    答:反正没你想的复杂。stm32只是避开了直接操作寄存器,改为使用官方库函数。当然也可以直接操作寄存器,但是编程不方便。只要对着几个例程看一下,调试一下,就差不多了
  • stm32不是有72mhz的主频吗?为啥用起来好像没有10几mhz的stc15快_百度...
    答:驱动不了或许就是时序太快了,72MHz的时序比12MHz时序快多了,所以很必要加个延时
  • STM32控制RGB灯WS2812求助
    答:4、咖啡桌带有一颗WS2812BLED灯、用于检测物体的红外接近传感器和用于通过定制的Android应用程序控制颜色的HC-05蓝牙模块。让我们首先仔细看看LED灯条。它由5050型RGBLED灯组成,其中集成了非常紧凑的WS2812BLED驱动器IC。5、如果只要红色,那么只需要红色对应的管脚拉低即可,另外两个管脚保持高电平。例如...