mangocity 发表于 2015-5-21 23:18:48

STC15驱动TM1629的问题

最近想调试一下TM1629,驱动10个共阳数码管,发现不能点亮。有人能够帮忙看看吗?
接法是这样的:





代码是:

#define ARRAYSIZE(array) (sizeof(array)/sizeof(array))


#define DISPLAY_BUFFER_SIZE 16
BYTE TM1629_OutputBuffer = {0xC0};

void TM1629_ClearAll()
{
    register BYTE i;
    for(i = 1; i < ARRAYSIZE(TM1629_OutputBuffer); i++)
    {
      TM1629_OutputBuffer = 0;
    }

}

void TM1629_Configure()
{
    TM1629_ClearAll();
    TM1629_OutputBuffer = 0x01;
    TM1629_OutputBuffer = 0x01;
    TM1629_OutputBuffer = 0x01;
    TM1629_OutputBuffer = 0x01;
    TM1629_OutputBuffer = 0x01;
    TM1629_OutputBuffer = 0x01;

    GpioSPI_Init();
    GpioSPI_Transfer(0x03);
    GpioSPI_Transfer(0x40);
    GpioSPI_TransferBlock(NULL, TM1629_OutputBuffer, ARRAYSIZE(TM1629_OutputBuffer));
    GpioSPI_Transfer(0x8F);
}

想点亮第一个数码管输出 0, 结果所有的位段都不亮了。为啥呢?

jufr12315 发表于 2015-5-22 09:38:47

我用过这家公司的,应该都差不多。这芯片是不是驱动共阳的?

STCunio 发表于 2015-5-22 10:05:19

你这程序没法让别人给你找原因,你可以试着一段一段驱动,看看是硬件上的问题还是软件上的问题

mangocity 发表于 2015-5-22 10:08:00

STCunio 发表于 2015-5-22 10:05
你这程序没法让别人给你找原因,你可以试着一段一段驱动,看看是硬件上的问题还是软件上的问题 ...

那几个赋值语句就是单独的驱动某一段,只保留一个的时候也是还不行。

n_mos 发表于 2015-5-22 10:32:01

之前搞的,希望对你有用

STCunio 发表于 2015-5-22 10:32:31

你位选了吗?先位选,再发段码。

mangocity 发表于 2015-5-22 10:36:52

STCunio 发表于 2015-5-22 10:32
你位选了吗?先位选,再发段码。

位选是怎么做的呢?数据手册里没有提到位选这么回事。

mangocity 发表于 2015-5-22 10:39:24

n_mos 发表于 2015-5-22 10:32
之前搞的,希望对你有用

好像我的过程和你的代码差不多。
先发40, 再发 C0 和字段数据,最后发 8F 打开显示。

n_mos 发表于 2015-5-22 11:09:49

mangocity 发表于 2015-5-22 10:39
好像我的过程和你的代码差不多。
先发40, 再发 C0 和字段数据,最后发 8F 打开显示。 ...

你的电路和我的一样,加上我那段转码程序就好了

qq开始学单片机 发表于 2015-5-22 11:22:43

TM1629是共阴驱动,如果是共阳接法,需要扫描输入,5楼已经给过代码,我就不上代码了

Excellence 发表于 2015-5-22 12:21:25

楼主,这芯片多少钱?

mangocity 发表于 2015-5-22 21:54:40

Excellence 发表于 2015-5-22 12:21
楼主,这芯片多少钱?

一块多吧,在JLC买的.

wuxin999 发表于 2015-8-1 11:43:01

这种IC多用于驱动共阴的数码管哇

wuxin999 发表于 2015-9-2 14:21:41

你有把数据发到io口么??
页: [1]
查看完整版本: STC15驱动TM1629的问题