先查电路图吧,代码逻辑有问题,与电路有关 |
人中狼 发表于 2023-3-5 07:58 电路图没有,是其它设备上拆的点阵板子 大致理了一下线路 点亮了一些 ,想着用单片机来测试看看 |
405616736 发表于 2023-3-5 05:01 非常感谢,板子是以前设备上的,拆下来改的,所以电路上不是完全理清,想着单片机上面写程序测试能测出来就先试试看了。 |
缺电路图,代码看着逻辑有问题 |
由unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列 判断列为低电平有效,行为高电平有效 但Lattice_WriteData(buffer,0x7f,0xff); 行数据复制0x7f,0xff,给出除了第一个点都有效,这里与“点亮单个LED”就已经不相符。 建议了解情况行列的高低电平有效值,注意修改以下三行代码: HC595_DS = value&(0x7f >> i); unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列 Lattice_WriteData(buffer,0x7f,0xff); |
大漠落日 发表于 2023-3-4 20:55 行列都用595驱动的不需要消隐 |
本帖最后由 405616736 于 2023-3-5 01:43 编辑 unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列 从数组0x7f,0xff推测你64列为低电平有效,对应行为高电平有效 Lattice_WriteData(buffer,0x7f,0xff); 这条代码,行给出0x7f,0xff已经点亮出第一个外所有LED。与点亮单个LED了的想法不符了。 建议先弄清楚点阵屏的行列有效电平。 再重点关注以下几行代码 HC595_DS = value&(0x7f >> i); unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列Lattice_WriteData(buffer,0x7f,0xff); |
消隐没有写好 |
飞云居士 发表于 2023-3-4 18:11 线路检查没有问题,谢谢 |
检查线路是否有接触不良、短路等。如一切正常,程序中在往显示缓冲区写数据时,短暂关闭显示。 |