打印
[应用相关]

STM32驱动TM1616程序加原理图

[复制链接]
432|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
观海|  楼主 | 2021-8-3 08:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、TM1616原理图


使用特权

评论回复
沙发
观海|  楼主 | 2021-8-3 08:47 | 只看该作者
二、驱动程序

#include "led.h"


void led_init(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE, ENABLE);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
        GPIO_Init(GPIOD, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
        GPIO_Init(GPIOE, &GPIO_InitStructure);

        GPIO_SetBits(GPIOC,GPIO_Pin_0);
        GPIO_SetBits(GPIOD,GPIO_Pin_13);
        GPIO_SetBits(GPIOE,GPIO_Pin_6);
}

void led_delay(u8 i)
{
        while(i>0)
                i--;
}

void led_write_data(u8 data)
{
        u8 i;
        for(i=0;i<8;i++)
        {
                led_clk=0;
                if(data&0x01)
                        led_dio=1;
                else
                        led_dio=0;
                data>>=1;
                led_delay(2);
                led_clk=1;
        }
}

void led_show_data(u8 *showData)
{
        led_stb=0;
        led_delay(2);
        led_write_data(0x00);                                //设置数据命令
        led_stb=1;
        led_delay(2);
        led_stb=0;
        led_delay(2);
        led_write_data(0x40);                                //设置数据命令
        led_stb=1;
        led_delay(2);
        led_stb=0;
        led_delay(2);
        led_write_data(0xc0);                                //设置显示地址
       

        led_write_data(showData[0]);                //设置显示数据
        led_write_data(0X00);                //设置显示数据
        led_write_data(showData[1]);                //设置显示数据
        led_write_data(0X00);                //设置显示数据
        led_write_data(showData[2]);                //设置显示数据
        led_write_data(0X00);                //设置显示数据
        led_write_data(showData[3]);                //设置显示数据
       
        led_stb=1;
        led_delay(2);
        led_stb=0;
        led_delay(2);
        led_write_data(LED_ON|LED_BRIGHTNESS_3);                //设置显示控制命令
        led_stb=1;
        led_delay(2);
}



使用特权

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

本版积分规则

99

主题

4042

帖子

1

粉丝