stm32驱动Tm1803 LED 控制芯片

因为 Tm1803 的驱动时间

因为电平时间是微秒级别的 如果cpu用普通io来处理的话 必须要关闭中断,完全没有实际使用价值

使用纯io操作,参考代码如下:

void LedDly(INT8U dly)
{
    while(dly)    --dly;
}

#define LedTime    12
#define SpiLedIO    PerpheralBit(GPIOB->ODR,15)
void TestLed(void)
{
    INT32U d=0x0000FF00;
    INT8U i,dly;
    SpiLedIO=0;
    for(i=0;i<10;i++)    LedDly(LedTime);
    SpiLedIO=1;    
    for(i=0;i<24;i++)
    {
        SpiLedIO=1;
        if(d&0x800000)        LedDly(LedTime*2/3);
        else        LedDly(LedTime*1/3);
        SpiLedIO=0;
        if(d&0x800000)        LedDly(LedTime*1/3);
        else        LedDly(LedTime*2/3);
        d<<=1;
    }
    SpiLedIO=0;
    for(i=0;i<10;i++)    LedDly(LedTime);
    SpiLedIO=1;    
}

 

本来打算做两个stm32的方案 一个用来处理业务,一个用来驱动led,

忽然灵机一动,可以使用spi的mosi的来硬件实现驱动电平的变化,然后外+一个dma,实现数据的自动发送

代码下载地址:https://download.csdn.net/download/ljxh401/10740436

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值