久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2009|回復: 4
打印 上一主題 下一主題
收起左側

STM32按鍵輸入程序,小白求助

[復制鏈接]
跳轉到指定樓層
樓主
ID:525734 發表于 2019-12-6 21:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
int a=0;
void Set_angle(void){
        key=KeyScan();
        switch(key){
                        case 1 : str[str_cur++]=1;  break ;
                        case 2 : str[str_cur++]=2;  break ;
                        case 3 : str[str_cur++]=3;        break ;
                        case 4 : str[str_cur++]=4;         break ;
                        case 5 : str[str_cur++]=5;  break ;
                        case 6 : str[str_cur++]=6;         break ;
                        case 7 : str[str_cur++]=7;        break ;
                        case 8 : str[str_cur++]=8;         break ;
                        case 9 : str[str_cur++]=9;  break ;
                        case 10 : str[str_cur++]=0;         break ;
                        case 11 : {
                                angle=str[0]*100+str[1]*10+str[2];
                                str[0]=0;str[1]=0;str[2]=0;str_cur = 0;
                                a=1;
                        }
                        break ;
                        default: break;
                }
                LCD_ShowNum(60+48,100,str[0],1,24);        
                LCD_ShowNum(60+48+12,100,str[1],1,24);        
                LCD_ShowNum(60+48+24,100,str[2],1,24);
          LCD_ShowString(80,50,200,16,16,"setting angle");
}
//éèÖð뾶
void Set_R(void){

        key=KeyScan();
                GPIO_SetBits(GPIOE,GPIO_Pin_5);
        switch(key){
                        case 1 : str[str_cur++]=1;  break ;
                        case 2 : str[str_cur++]=2; break ;
                        case 3 : str[str_cur++]=3;          break ;
                        case 4 : str[str_cur++]=4;          break ;
                        case 5 : str[str_cur++]=5;   break ;
                        case 6 : str[str_cur++]=6;         break ;
                        case 7 : str[str_cur++]=7;         break ;
                        case 8 : str[str_cur++]=8;         break ;
                        case 9 : str[str_cur++]=9;  break ;
                        case 10 : str[str_cur++]=0;         break ;
                        case 11 :
                                {
                                R=str[0]*10+str[1];
                                str[0]=0;str[1]=0;str_cur = 0;
                                a=1;
                        }
                        break ;
                        default: break;
                }        GPIO_ResetBits(GPIOE,GPIO_Pin_5);

                LCD_ShowNum(60+48,100,str[0],1,24);        
                LCD_ShowNum(60+48+12,100,str[1],1,24);        
          LCD_ShowString(80,50,200,16,16,"setting R");
}
這段程序,我用的是4*4的矩陣按鍵,按鍵能用,但是執行到這段程序的時候,按鍵沒用了。
void KEY1_Init(void)
{            
  GPIO_InitTypeDef  GPIO_InitStructure1,GPIO_InitStructure2;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

  //GPIOD2,D3,D4,D53õê¼»ˉéèÖÃ
  GPIO_InitStructure1.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3| GPIO_Pin_6| GPIO_Pin_7; //DD
  GPIO_InitStructure1.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure1.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure1.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOD, &GPIO_InitStructure1);
        
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);
        
        //GPIOG2,G3,G4,G53õê¼»ˉéèÖÃ
  GPIO_InitStructure2.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5;
  GPIO_InitStructure2.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure2.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
        GPIO_InitStructure2.GPIO_PuPd =GPIO_PuPd_DOWN;
  GPIO_Init(GPIOG, &GPIO_InitStructure2);


}


void LED_Init(void)
{            
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);


  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOF, &GPIO_InitStructure);
        
        GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);

}

u8 KeyScan(void)
{
u8 a=0;
static u8 key_up=1;
G2_O=0,G3_O=0,G4_O=0,G5_O=0;

if(key_up&&(D2_I==0||D3_I==0||D4_I==0||D5_I==0))
{
//  delay_ms(3);
  key_up=0;
  if(D2_I==0) a=0;
  if(D3_I==0) a=4;
  if(D4_I==0) a=8;
        if(D5_I==0) a=12;

  G2_O=0,G3_O=1,G4_O=1,G5_O=1;
  if(D2_I==0||D3_I==0||D4_I==0||D5_I==0) a+=1;

  G2_O=1,G3_O=0,G4_O=1,G5_O=1;
  if(D2_I==0||D3_I==0||D4_I==0||D5_I==0) a+=2;

  G2_O=1,G3_O=1,G4_O=0,G5_O=1;
  if(D2_I==0||D3_I==0||D4_I==0||D5_I==0) a+=3;
         
        G2_O=1,G3_O=1,G4_O=1,G5_O=0;
  if(D2_I==0||D3_I==0||D4_I==0||D5_I==0) a+=4;         
}
else if(D2_I==1&&D3_I==1&&D4_I==1&&D5_I==1) {
         key_up=1;a=0;
}
return a;
}
這是按鍵掃描程序。

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

使用道具 舉報

沙發
ID:470332 發表于 2019-12-7 17:01 | 只看該作者
不知道你要問什么,這么一長串代碼估計也沒人會看
回復

使用道具 舉報

板凳
ID:416239 發表于 2019-12-7 21:46 | 只看該作者
出現了什么問題啊
回復

使用道具 舉報

地板
ID:525734 發表于 2019-12-8 20:13 | 只看該作者
李澤訓 發表于 2019-12-7 21:46
出現了什么問題啊

就是一個按鍵掃描程序,但是進不去,按鍵沒用,可是我按鍵的接線沒問題,其他按鍵控制都沒問題,但一到輸出字符串的時候,就沒辦法用了。
回復

使用道具 舉報

5#
ID:122686 發表于 2019-12-9 00:04 | 只看該作者
正好需要,下載下來看看。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲天堂中文字幕 | 中文字幕国产视频 | 在线视频91| 欧区一欧区二欧区三免费 | 国产亚洲精品精品国产亚洲综合 | av性色全交蜜桃成熟时 | 美女国内精品自产拍在线播放 | 男女网站免费观看 | 欧美日本免费 | 国产精品国产馆在线真实露脸 | 日韩免费视频一区二区 | 精品日韩一区二区 | 1000部精品久久久久久久久 | 欧美一级电影免费 | 欧美片网站免费 | 欧美综合一区二区三区 | www.天天操 | 国产色| 国产精品一区二区福利视频 | 日韩欧美三区 | 天天综合国产 | 欧美国产一区二区 | 五月激情综合 | 久久高清国产视频 | 日日综合| 中文字幕1区2区3区 亚洲国产成人精品女人久久久 | 久久久亚洲一区 | 颜色网站在线观看 | 国产精品毛片一区二区在线看 | 午夜成人免费视频 | 超碰最新在线 | 天天艹逼网 | 国产精品日韩欧美一区二区三区 | 亚洲www啪成人一区二区麻豆 | 色又黄又爽网站www久久 | 成人亚洲性情网站www在线观看 | 少妇一级淫片免费播放 | 日韩精品一区二区三区中文字幕 | 久久久久综合 | 亚洲国产一区二区三区 | 成人毛片网站 |