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, 结果所有的位段都不亮了。为啥呢?
我用过这家公司的,应该都差不多。这芯片是不是驱动共阳的? 你这程序没法让别人给你找原因,你可以试着一段一段驱动,看看是硬件上的问题还是软件上的问题 STCunio 发表于 2015-5-22 10:05
你这程序没法让别人给你找原因,你可以试着一段一段驱动,看看是硬件上的问题还是软件上的问题 ...
那几个赋值语句就是单独的驱动某一段,只保留一个的时候也是还不行。 之前搞的,希望对你有用
你位选了吗?先位选,再发段码。 STCunio 发表于 2015-5-22 10:32
你位选了吗?先位选,再发段码。
位选是怎么做的呢?数据手册里没有提到位选这么回事。 n_mos 发表于 2015-5-22 10:32
之前搞的,希望对你有用
好像我的过程和你的代码差不多。
先发40, 再发 C0 和字段数据,最后发 8F 打开显示。 mangocity 发表于 2015-5-22 10:39
好像我的过程和你的代码差不多。
先发40, 再发 C0 和字段数据,最后发 8F 打开显示。 ...
你的电路和我的一样,加上我那段转码程序就好了
TM1629是共阴驱动,如果是共阳接法,需要扫描输入,5楼已经给过代码,我就不上代码了 楼主,这芯片多少钱? Excellence 发表于 2015-5-22 12:21
楼主,这芯片多少钱?
一块多吧,在JLC买的. 这种IC多用于驱动共阴的数码管哇 你有把数据发到io口么??
页:
[1]