<center id="qkqgy"><optgroup id="qkqgy"></optgroup></center>
  • <menu id="qkqgy"></menu>
    <nav id="qkqgy"></nav>
    <xmp id="qkqgy"><nav id="qkqgy"></nav>
  • <xmp id="qkqgy"><menu id="qkqgy"></menu>
    <menu id="qkqgy"><menu id="qkqgy"></menu></menu>
    <tt id="qkqgy"><tt id="qkqgy"></tt></tt>

  • 本程序適用于:1:會C語言,玩過STM32,懂得STM32外部電路的并且會舉一反三的同學
    ? ??2:會C或者C++語言,玩過界面,只需把按鍵按下變成界面按鈕按下,存eeprom變成讀寫文件即可
    ? ? ? ? ? ? ? ? ? ??3:如果只會C語言,了解一下思想、

    ? ? ? ? ? ? ? ? ? ??4:如果只會硬件,沒問題,軟件學學也沒想象中的那么難

    void set_password(void) { char i,j = 0; char password_buf[6] = {0};
    //臨時存儲,為了把密碼存儲到eeprom int m=0; //用作密碼成功判斷 int k = -1;//密碼,范圍0~9 char store[50]
    = {0}; //為了lcd顯示存儲的數據 _REINPUT: delay(MSec(80));
    //延時函數,需自己封裝,如帶操作系統,根據系統性質編寫,如若無系統,兩個for循環也行
    LCD_Show("請按鍵設置密碼:");//LCD顯示函數,需自己封裝 j = 0; m = 0; while(1) { k = -1;
    if(scan_key_down("PE1")) //判斷按鍵按下函數,自己根據STM32的IO性質以及實際硬件電路編寫 { delay(MSec(50));
    if(scan_key_down("PE1")) { for(i=0;i<300;i++) { delay(MSec(100));
    if(((i%5)==0)&&(i!=0)) //5的倍數才能進if,也起延時作用 { k++; if(k>9) { k = 0; //限制密碼范圍為9以內
    } sprintf(store,"密碼第%d位: %d",j+1,k); // 配合LCD輸出 LCD_Show(store); }
    if(read_IO("PE1")==1) //檢測松開按鍵函數,松開按鍵跳出循環,k為密碼的一位 { break; } } m++;
    password_buf[j] = k; //密碼存儲 j++; if(j>5) //限制密碼位數 { j=0; k=-1; } } }
    if(scan_key_down("PE2"))//按下按鍵選定模式,用另一個按鍵 { delay(MSec(50));
    if(scan_key_down("PE2")) { if(m%6==0&&m!=0) { LCD_Show("密碼設置OK!");
    for(i=0;i<6;i++) { printf("密碼第%d位:%d\n",i+1,passwordBuf[i]);
    eeprom_wr8((char)password_buf[i],900+i); //密碼寫進eeprom delay(MSec(10)); }
    delay(Sec(2)); } else { LCD_Show("密碼設置NG!"); LCD_Show("請重新輸入密碼!");
    delay(Sec(2)); goto _REINPUT; //調回開始重新執行 } break; } } delay(MSec(20)); } }
    歡迎愛技術的小伙伴一起交流,如有錯誤,希望告知,一起改正,共同進步。

    技術
    下載桌面版
    GitHub
    百度網盤(提取碼:draw)
    Gitee
    云服務器優惠
    阿里云優惠券
    騰訊云優惠券
    華為云優惠券
    站點信息
    問題反饋
    郵箱:ixiaoyang8@qq.com
    QQ群:766591547
    關注微信
    巨胸美乳无码人妻视频