跪求基于STM32F4主控HT1621B芯片驱动段码LCD的程序

2019-07-20 01:20发布

最近一直在弄段码LCD的显示程序,用HT1621B驱动,STM32F407ZGT6主控,总是什么都不显示!!!各位大神,有没有这块的程序分享一下啊! 不胜感激!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
tony129
1楼-- · 2019-07-20 02:14

void lcddelay(uint32_t time)
{
        do
        {
                time--;
        }while(time>0);
}


void SendBit_1621(uint8_t data,uint8_t cnt) //data μĸßcntλD′èëHT1621,¸ßλÔúÇ°
{
        uint8_t i;
        for(i=0;i<cnt;i++)
        {
                if((data&0x80)==0)
                {
                        CLR_DAT();
                }
                else
                {
                        SET_DAT();
                }
                Lcd1621delay();
                CLR_WR();
                Lcd1621delay();
                SET_WR();
                data<<=1;
        }
}

void SendDataBit_1621(uint8_t data,uint8_t cnt) //data μ&#196;μícnt&#206;&#187;D′è&#235;HT1621£&#172;μí&#206;&#187;&#212;ú&#199;°
{
        uint8_t i;
       
        for(i=0;i<cnt;i++)
        {
                if((data&0x01)==0)
                {
                        CLR_DAT();
                }
                else   
                {
                        SET_DAT();
                }
                Lcd1621delay();
                CLR_WR();
                Lcd1621delay();
                SET_WR();
                data>>=1;
        }
}

void SendCmd(uint8_t command)
{
        SET_WR();
        SET_DAT();
        CLR_CS();
        SendBit_1621(0x80,4); // D′è&#235;±ê&#214;&#190;&#206;&#187;&#194;&#235; 100 oí9&#206;&#187;command &#195;üá&#238;
        SendBit_1621(command,8); //
        SET_WR();
        SET_DAT();
        SET_CS();
}

void Write_1621(uint8_t addr,uint8_t data)
{
        SET_WR();
        SET_DAT();
        CLR_CS();
        SendBit_1621(0xa0,3);
        SendBit_1621(addr,6);
        SendDataBit_1621(data,4);
        SET_WR();
        SET_DAT();
        SET_CS();
}

void WriteAll_1621(uint8_t addr,uint8_t *p,uint8_t cnt)
{
        uint8_t i;
        SET_WR();
        SET_DAT();
        CLR_CS();
        SendBit_1621(0xa0,3);                //high to low
        SendBit_1621(addr,6);
        for(i=0;i<cnt;i++)
        {
                SendDataBit_1621(*p,4);                        //low to high
                p++;
        }
        SET_CS();
        SET_WR();
        SET_DAT();
        SET_CS();
}


市场上很多假冒的HT1621,应特别注意初始化IO口后将三个通信口拉高
正点原子
2楼-- · 2019-07-20 02:46
帮顶
sodermalm
3楼-- · 2019-07-20 03:40
 精彩回答 2  元偷偷看……
1599064432
4楼-- · 2019-07-20 05:30
 精彩回答 2  元偷偷看……

一周热门 更多>