打印
[STM32]

基于STM32的ws2812智能灯的驱动代码!

[复制链接]
1816|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
这是我的.h程序
#include "stm32f10x.h"
#include "RGB_LED.h"
#include "delay.h"
void RGB_LED_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;               
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      
    GPIO_Init(GPIOB, &GPIO_InitStructure);                  
    GPIO_SetBits(GPIOB,GPIO_Pin_9);                     
}

void RGB_LED_Write0(void)
{
    RGB_LED_HIGH;
    __nop();__nop();__nop();__nop();__nop();__nop();
    RGB_LED_LOW;
    __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
    __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
    __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
    __nop();__nop();
}

void RGB_LED_Write1(void)
{
    RGB_LED_HIGH;
    __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
    __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
    __nop();__nop();
    RGB_LED_LOW;
    __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();
    __nop();__nop();
}
void RGB_LED_Reset(void)
{
    RGB_LED_LOW;
    delay_us(80);
}

void RGB_LED_Write_Byte(uint8_t byte)
{
    uint8_t i;

    for(i=0;i<8;i++)
        {
            if(byte&0x80)
                {
                    RGB_LED_Write1();
            }
            else
                {
                    RGB_LED_Write0();
            }
        byte <<= 1;
    }
}

void RGB_LED_Write_24Bits(uint8_t green,uint8_t red,uint8_t blue)
{
    RGB_LED_Write_Byte(green);
    RGB_LED_Write_Byte(red);
    RGB_LED_Write_Byte(blue);
}

//亮灯颜色设定,其他颜色以此类推
void RGB_LED_Red(void)
{
     uint8_t i;
    //4个LED全彩灯
    for(i=0;i<4;i++)
        {
            RGB_LED_Write_24Bits(0, 0xff, 0);
    }
}

void RGB_LED_Green(void)
{
    uint8_t i;

    for(i=0;i<4;i++)
        {
            RGB_LED_Write_24Bits(0xff, 0, 0);
    }
}

void RGB_LED_Blue(void)
{
    uint8_t i;

    for(i=0;i<4;i++)
        {
            RGB_LED_Write_24Bits(0, 0, 0xff);
    }
}
这是我的C的函数,请问主函数怎么书写,怎么与WS2812B智能灯连接呢用STM32F103

AP9OO8)FRZ9J)HS3F1KX8X1.png (73.38 KB )

AP9OO8)FRZ9J)HS3F1KX8X1.png

AP9OO8)FRZ9J)HS3F1KX8X1.png (73.38 KB )

AP9OO8)FRZ9J)HS3F1KX8X1.png

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝