找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3956|回复: 4
收起左侧

求TM1638控制程序。。

[复制链接]
ID:158574 发表于 2017-6-19 10:08 | 显示全部楼层 |阅读模式
用的STM32F103,驱动程序借助单片机的做了修改,按键程序搞不太明白,所以没办法实现按键数码管+-和移位,求解答

  1. uint8_t Read_Key()
  2. {
  3.         uint8_t i=0;
  4.         uint8_t key1=0;
  5.         uint16_t key2=0;
  6.         Write_Cmd(0x42);
  7.         Set(DIO);                       //this is obligatory, check the data sheet,GPIO
  8.         for(i=0;i<4;i++)
  9.         {
  10.           key1=Read_Byte();
  11.           key2|=(key1<<i);
  12.         }
  13.         key2>>=1;
  14.         for(i=0;i<8;i++)
  15.         {
  16.           if(0x01<<i==key2)return i+1;
  17.         }
  18.         return 0;
  19. }

  20. /***********************************************************************************************
  21. *Function Name: TM1638_SendData               
  22. *Purpose      : Write data to the location specified
  23. *params       : i     ------the bit code of digtal tube,0 to 7
  24.                 str   ------the string,the char which was not in tm_data will be replace with "''".
  25. *return       : none
  26. ***********************************************************************************************/
  27. void TM1638_SendData(uint8_t i,uint8_t * str){
  28.         int j=0,k=0;
  29.         unsigned char chr;
  30.         for(;i<8;i++)
  31.         {
  32.                 k=0;
  33.                 for(j=0;j<14;j++)
  34.                 {
  35.                         if(*str==tm_dat[0][j])
  36.                         {
  37.                                 chr=tm_dat[1][j];
  38.                                 k=1;
  39.                                 break;
  40.                         }
  41.                 }
  42.                
  43.                 if(k==0)
  44.                 {
  45.                         chr=0x00;
  46.                 }
  47.                
  48.                 if(*(str+1)=='.')
  49.                 {
  50.                         chr|=0x80;
  51.                         Write_Dat(i*2,chr);
  52.                         str++;
  53.                 }else
  54.                 {
  55.                         Write_Dat(i*2,chr);
  56.                 }
  57.                 str++;
  58.                 if(*str=='\0')break;
  59.         }
  60. }
  61. 这个TM1638_SendData看不懂啊,怎么用?
复制代码


回复

使用道具 举报

ID:199141 发表于 2017-10-24 20:05 | 显示全部楼层
你的能扫到案件按键的数据吗?
我的不能,但你的其他问题我可以解决
回复

使用道具 举报

ID:884711 发表于 2022-8-17 09:59 | 显示全部楼层
还是被按键困扰 ,用各大佬的成熟程序做测试,明明用的是k3线的按键,电路图中加入k2线的8个按键居然有7个按键可以控制程序的运行,搞不懂该如何处理
回复

使用道具 举报

ID:624769 发表于 2022-8-17 12:44 来自手机 | 显示全部楼层
haide1998 发表于 2022-8-17 09:59
还是被按键困扰 ,用各大佬的成熟程序做测试,明明用的是k3线的按键,电路图中加入k2线的8个按键居然有7个 ...

加电容
回复

使用道具 举报

ID:1109793 发表于 2024-2-2 17:03 | 显示全部楼层
haide1998 发表于 2022-8-17 09:59
还是被按键困扰 ,用各大佬的成熟程序做测试,明明用的是k3线的按键,电路图中加入k2线的8个按键居然有7个 ...

你好,我是可以读按键,只是有电磁干扰时没有按键也会读到不一定是哪个按键就有动作了,所以不太敢用,不知道咋办了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表