SM16306S 使用

本文介绍了SM16306S芯片的手册使用注意事项,特别关注LE引脚的数据锁存和OE引脚的使能控制,以及如何通过GPIO进行驱动和初始化LED。提到OE引脚不建议直接接地以防止写入时的闪烁问题。
摘要由CSDN通过智能技术生成

SM16306S 使用

SM16306芯片手册

注意:1.LE引脚用于芯片数据锁存,OE引脚用于芯片使能

2.根据芯片技术手册,SDI每输入一位数据,需要LE置位一次,用于锁存数据

3.OE引脚最好不要直接接地拉低,如果OE引脚直接接地,芯片在写入过程中,会出现不受控的点亮,导致写入时闪烁现象出现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

芯片驱动

本版本OE引脚直接接地了,所以没有对OE引脚进行操作,一般情况在写入时失能芯片

/******************************** 宏定义 *************************************/
#define CLK_PIN    GPIO_Pin_3
#define SDI_PIN    GPIO_Pin_8
#define EN_PIN     GPIO_Pin_9

#define CLK_UP      GPIOB_SetBits(GPIO_Pin_3)
#define CLK_DOWN    GPIOB_ResetBits(GPIO_Pin_3)
#define SDI_UP      GPIOB_SetBits(GPIO_Pin_8)
#define SDI_DOWN    GPIOB_ResetBits(GPIO_Pin_8)
#define LE_UP       GPIOB_SetBits(GPIO_Pin_9)
#define LE_DOWN     GPIOB_ResetBits(GPIO_Pin_9)

/******************************** 库函数 *************************************/

void sm12306_init(void)
{
    GPIOB_ModeCfg(CLK_PIN, GPIO_ModeOut_PP_5mA);
    GPIOB_ModeCfg(SDI_PIN, GPIO_ModeOut_PP_5mA);
    GPIOB_ModeCfg(EN_PIN, GPIO_ModeOut_PP_5mA);

    CLK_DOWN;
    SDI_DOWN;
    LE_DOWN;
    //初始化LED结构体
    memset(&Led,0,sizeof(LED_CFG));
}

//内部调用,仅用于写入LED_STATE
static void open_sm16306s_led(u16 data)
{


    for ( u8 i = 0;  i < 16; i++)
    {
        if (data&0X8000)
            SDI_UP;
        else
            SDI_DOWN;
        CLK_UP;
        data = (data<<1);
        CLK_DOWN;
        LE_UP;
        CLK_UP;
        LE_DOWN;
        CLK_DOWN;
    }
}
        CLK_UP;
        LE_DOWN;
        CLK_DOWN;
    }
}
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值