zlg7289代码

来源:互联网 发布:关于借钱的网络段子 编辑:程序博客网 时间:2024/05/23 22:54
最近一直在调试ZLG7289根据官方给的代码怎么弄都得不到正确的返回按键ID。根据自己弄了一个,跟大家共享,少走弯路。。。。只提供部分关键的步骤[code=C/C++]unsigned char TM_ZLG7289_Key(void){     unsigned char key;     ZLG7289_pinCS = 0;     DelayUs2x(SPI_T1);    //ZLG7289_LongDelay();     //TM_SPI_SendByte(0x15);     TM_SPI_SendByte(0x15);    DelayUs2x(SPI_T5);    key = TM_SPI_ReceiveByte();     //ZLG7289_LongDelay();     ZLG7289_pinCS = 1;     //ZLG7289_LongDelay();     return key; }  unsigned char TM_SPI_ReceiveByte(void) //reentrant{    unsigned char value =0;    unsigned char i=8;    //Set_SPI_Do();   // DelayUs2x(SPI_T6);//    Set_SPI_Clk();    Clr_SPI_Clk();    DelayUs2x(SPI_T6);    do    {        //Clr_SPI_Clk();        Set_SPI_Clk();        DelayUs2x(SPI_T3);        value = value <<1;        if(Read_SPI_Di())        {            value++;        }        //Set_SPI_Clk();        Clr_SPI_Clk();        DelayUs2x(SPI_T7);    }while(--i != 0);    //DelayUs2x(SPI_T8);    return value;}[/code]

最近一直在调试ZLG7289根据官方给的代码怎么弄都得不到正确的返回按键ID。


根据自己弄了一个,跟大家共享,少走弯路。。。。


只提供部分关键的步骤




[code=C/C++]


unsigned char TM_ZLG7289_Key(void)

    unsigned char key; 
    ZLG7289_pinCS = 0; 
    DelayUs2x(SPI_T1);
    //ZLG7289_LongDelay(); 
    //TM_SPI_SendByte(0x15); 
    TM_SPI_SendByte(0x15);
    DelayUs2x(SPI_T5);
    key = TM_SPI_ReceiveByte(); 
    //ZLG7289_LongDelay(); 
    ZLG7289_pinCS = 1; 
    //ZLG7289_LongDelay(); 
    return key; 

 




unsigned char TM_SPI_ReceiveByte(void) //reentrant
{
    unsigned char value =0;
    unsigned char i=8;


    //Set_SPI_Do();
   // DelayUs2x(SPI_T6);
//    Set_SPI_Clk();
    Clr_SPI_Clk();
    DelayUs2x(SPI_T6);
    do
    {
        //Clr_SPI_Clk();
        Set_SPI_Clk();
        DelayUs2x(SPI_T3);
        value = value <<1;
        if(Read_SPI_Di())
        {
            value++;
        }
        //Set_SPI_Clk();
        Clr_SPI_Clk();
        DelayUs2x(SPI_T7);
    }while(--i != 0);
    //DelayUs2x(SPI_T8);
    return value;
}
[/code]