找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4809|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

stm32讀取ZLG7290按鍵鍵值實(shí)驗(yàn)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
stm32使用I2C讀取zlg7290芯片鍵值連擊次數(shù)實(shí)驗(yàn),建議周立功芯片晶振選用4M。附件中存有程序添加入正點(diǎn)原子實(shí)驗(yàn)源碼用keill5跑程序。



單片機(jī)源程序如下:
  1. #include "ZLG7290.h"
  2. #include "sys.h"
  3. #include "myiic.h"
  4. #include "delay.h"
  5. #include "led.h"

  6. void delayMS(unsigned char i)
  7. {
  8. unsigned char j,k;
  9. for(k=0;k<i;k++)
  10.    for(j=0;j<60;j++);
  11. }

  12. //初始化
  13. void ZLG7290_Init(void)
  14. {
  15.     IIC_Init();
  16. }

  17. /*********************************************************************************************************
  18. ** 函數(shù)名稱        :        ZLG7290_GetKey
  19. ** 功能描述        :        讀取鍵值
  20. ** 調(diào)用模塊:         IRcvStr、delayMS
  21. ********************************************************************************************************/
  22. u8        ZLG7290_GetKey(u8        recv)
  23. {
  24.         u8 data;
  25. //        recv=0;
  26.         data=IRcvStr(zlg7290,1,&recv,1);
  27.         delayMS(10);
  28.         return data;
  29. }
  30. //讀取連擊數(shù)
  31. u8 read_key(u8 lj)
  32. {

  33.                 u8 dataa;
  34.         dataa=IRcvStr(zlg7290,2,&lj,1);   
  35.                 delayMS(10);
  36.         return dataa;       
  37.                
  38.                        
  39. }
  40. /*********************************************************************************************************
  41. ** 函數(shù)名稱        :         ZLG7290_SendData
  42. ** 功能描述        :         發(fā)送數(shù)據(jù)
  43. ** 輸 入        :        SubAdd         :        輸入子地址
  44. **                                  Data        :        輸入數(shù)據(jù)     
  45. ** 輸 出        :        0         :        Fail
  46. **                         1         :         OK
  47. ** 調(diào)用模塊        :         ISendStr、delayMS
  48. ********************************************************************************************************/
  49. //u8        ZLG7290_SendData(u8 SubAdd,u8 Data)
  50. //{
  51. //        if(SubAdd>0x17)
  52. //                return 0;
  53. //        ISendStr(zlg7290,SubAdd,&Data,1);
  54. //        delayMS(10);
  55. //                return 1;
  56. //}

  57. /*********************************************************************************************************
  58. ** 函數(shù)名稱        :         ZLG7290_SendBuf
  59. ** 功能描述        :         向顯示緩沖區(qū)發(fā)送數(shù)據(jù)
  60. ** 輸 入        :        SubAdd         :        輸入子地址
  61. **                                  *buf        :        輸入數(shù)據(jù)的首地址
  62. **                                num         :        發(fā)送個(gè)數(shù)
  63. ** 調(diào)用模塊        :         ISendStr、delayMS
  64. ********************************************************************************************************/
  65. //void        ZLG7290_SendBuf( u8 SubAdr, u8 *buf, u8 num)
  66. //{
  67. //        ISendStr(zlg7290, SubAdr, buf, num);
  68. //        delayMS(10);
  69. //}

  70. /*********************************************************************************************************
  71. ** 函數(shù)名稱        :         ZLG7290_SendCmd
  72. ** 功能描述        :         發(fā)送命令(對(duì)子地址7、8)
  73. ** 輸 入        :        Data1        :        命令1
  74. **                        Data2        :        命令2
  75. ** 調(diào)用模塊        :        ISendStr、delayMS
  76. ********************************************************************************************************/
  77. //void        ZLG7290_SendCmd(u8 Data1,u8 Data2)
  78. //{
  79. //        u8        Data[2];
  80. //        Data[0]=Data1;
  81. //        Data[1]=Data2;
  82. //        ISendStr(zlg7290,0x07,Data,2);
  83. //        delayMS(10);
  84. //}

  85. /*********************************************************************************************************
  86. ** 函數(shù)名稱        :        ZLG7290_Disp
  87. ** 功能描述        :        向顯示緩沖區(qū)發(fā)送數(shù)據(jù)
  88. ** 輸 入        :        * disp_buf  :        要發(fā)送數(shù)據(jù)的起始地址
  89. **                   num                        :        發(fā)送個(gè)數(shù)
  90. ** 調(diào)用模塊        :         ZLG7290_SendCmd
  91. ********************************************************************************************************/
  92. ……………………

  93. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
周立功按鍵讀取實(shí)驗(yàn).zip (6.51 KB, 下載次數(shù): 73)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:736501 發(fā)表于 2020-4-23 21:56 | 只看該作者
ZLG7290如何防止按鍵連續(xù)讀取,實(shí)際中只需要讀一次就行了
回復(fù)

使用道具 舉報(bào)

板凳
ID:281433 發(fā)表于 2020-9-15 16:26 | 只看該作者
Jim168 發(fā)表于 2020-4-23 21:56
ZLG7290如何防止按鍵連續(xù)讀取,實(shí)際中只需要讀一次就行了

將讀取連擊數(shù)的函數(shù)內(nèi)的返回值寫(xiě)成固定
u8 read_key(u8 lj)
{              u8 dataa;
        //dataa=IRcvStr(zlg7290,2,&lj,1);   //屏蔽
           dataa=1;   //寫(xiě)成固定
                delayMS(10);
        return dataa;                              
}
然后讀取的連擊都是1 表示實(shí)際中每次只按了一次按鍵
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表