找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2000|回復(fù): 15
收起左側(cè)

如何再新增加一個按鍵程序

[復(fù)制鏈接]
ID:913288 發(fā)表于 2021-11-15 18:58 | 顯示全部樓層 |閱讀模式
本人軟件小白,原視頻教程只講了一個按鍵的使用方法,但我現(xiàn)在要用到幾個按鍵,現(xiàn)在不知道怎么弄第二個按鍵程序
下面是一個按鍵的代碼,不知道怎么弄第二個按鍵的代碼

void userapp_deal_key_msg(sys_msg_key_data_t  *key_msg)
{
        if(key_msg->key_index != KEY_NULL)
            {  

                if(key_msg->key_index == 1)            

                        if(MSG_KEY_STATUS_PRESS == key_msg->key_status)
                        {

                        }
                        else if(MSG_KEY_STATUS_PRESS_LONG == key_msg->key_status)
                        { //vr_flg
                                if(key_prs==0)
                                {
                                switch(vr_flg)
                                {
                                case 0:
                                        vr_flg=1;
                                        pause_voice_in();
                                        prompt_play_by_cmd_string("<A>",3,play_voice_callback,true);
                                                break;
                                case 1:
                                        vr_flg=0;
                                        pause_voice_in();
                                        prompt_play_by_cmd_string("<A>",4,play_voice_callback,true);
                                                break;
                                }
                                }
                                key_prs=1;

                        }
                        else if(MSG_KEY_STATUS_RELEASE == key_msg->key_status)
                        {
                                if(key_prs == 1)
                                {
                                        key_prs=0;
                                }else{
                                switch(power_flg)
                                {
                                case 0:
                                        power_flg=1;
                                        gpio_set_output_level_single(GPIO1,gpio_pin_6,1);
                                        gpio_set_output_level_single(GPIO1,gpio_pin_5,1);
                                                break;
                                case 1:
                                        power_flg=0;
                                        gpio_set_output_level_single(GPIO1,gpio_pin_6,0);
                                        gpio_set_output_level_single(GPIO1,gpio_pin_5,0);
                                                break;

                                                                {

                                }
                                }
                        }
                }
            }
}

回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-16 00:00 | 顯示全部樓層
if(key_msg->key_index == 1)
是按鍵一,按鍵二應(yīng)該怎么弄?求教...
回復(fù)

使用道具 舉報(bào)

ID:584195 發(fā)表于 2021-11-16 07:25 | 顯示全部樓層
cy2634900 發(fā)表于 2021-11-16 00:00
if(key_msg->key_index == 1)
是按鍵一,按鍵二應(yīng)該怎么弄?求教...

要學(xué)會用狀態(tài)機(jī),我還沒學(xué)會!
回復(fù)

使用道具 舉報(bào)

ID:115923 發(fā)表于 2021-11-16 09:54 | 顯示全部樓層

if(key_msg->key_index == 2)  /// 在這了,  按鍵一就是==1,按鍵二就是==2  
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-16 12:55 | 顯示全部樓層
zhaobolove 發(fā)表于 2021-11-16 09:54
if(key_msg->key_index == 2)  /// 在這了,  按鍵一就是==1,按鍵二就是==2  [e ...

這個地方是對應(yīng)的按鍵號我知道,但改了后還不是只有一個按鍵嗎?比如把1改為2那1號按鍵就沒有了嗎?我現(xiàn)在想問的問題是怎么才能讓按鍵1 按鍵2以及按鍵三同時(shí)存在?感謝你的回復(fù)軟件我噻也不懂。。。。
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-16 20:38 | 顯示全部樓層
沒有人知道嗎?這個對懂軟件的人來說應(yīng)該沒什么難度吧?
回復(fù)

使用道具 舉報(bào)

ID:528362 發(fā)表于 2021-11-16 23:15 | 顯示全部樓層
正好我也在找相關(guān)資料,看到過一個4按鍵的,是把各按鍵的程序都寫了一遍。
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-11-17 00:12 | 顯示全部樓層
cy2634900 發(fā)表于 2021-11-16 12:55
這個地方是對應(yīng)的按鍵號我知道,但改了后還不是只有一個按鍵嗎?比如把1改為2那1號按鍵就沒有了嗎?我現(xiàn) ...

不是難度不難度的問題, 弄幾個按鍵,基本大多數(shù)人都會,但是要切合你的實(shí)際情況,就比較麻煩了。
首先,         if(key_msg->key_index != KEY_NULL)   能寫出這種代碼的,我不認(rèn)為會搞不定一兩個按鍵。而實(shí)際上,個人覺得,用狀態(tài)機(jī)寫按鍵實(shí)在是有點(diǎn)大炮打蚊子。再然后,地板其實(shí)已經(jīng)講得挺清楚了, 你只要照虎畫貓,復(fù)制一下你的按鍵1,然后寫個2上去,就有按鍵2了。當(dāng)然,如果物理上,你的單片機(jī)壓根沒接按鍵2,另說。

所以,結(jié)合各種因素,最大的可能,這代碼你自己都看不明白。然后你要加按鍵,加了按鍵干什么,你其實(shí)也不知道,即便,給你寫一個按鍵程序發(fā)給你,你的目的大概率也不會達(dá)成,而且會引申出各種其他問題,而解決這一系列引申出來的問題,也許比從零開始教一個小白學(xué)會添加幾十個按鍵都要復(fù)雜很多倍。畢竟,你都用        if(key_msg->key_index != KEY_NULL) 來寫按鍵了。

那么,你這問題,其實(shí)就像燙手的山芋,大多數(shù)人是不敢接的……,換個角度講,地板試了水之后,大多數(shù)人對于你這個問題,感到無從下手啊……
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-11-17 09:36 | 顯示全部樓層
按鍵是最基本的輸入設(shè)備,用單鍵實(shí)現(xiàn)多功能無非就是短按、長按、連擊等等。這就需要識別當(dāng)前操作與過往狀態(tài)的邏輯關(guān)系。常見的編程方法是定義若干狀態(tài)標(biāo)志,以此確定執(zhí)行多分支功能的走向。樓主提供的代碼不完整且有錯誤,可能是樓主抄寫疏漏。但其不應(yīng)該作為入門教材案例。倒像是某人炫技作品。不易讀、易懂,缺乏普適性,新手不易去深究。
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 13:59 | 顯示全部樓層
本帖最后由 cy2634900 于 2021-11-17 18:51 編輯
188610329 發(fā)表于 2021-11-17 00:12
不是難度不難度的問題, 弄幾個按鍵,基本大多數(shù)人都會,但是要切合你的實(shí)際情況,就比較麻煩了。
首先 ...

這些代碼都不是我寫的,我軟件噻也不懂只懂硬件,是在網(wǎng)上買的一個模塊附帶的,我就是你說的照虎畫貓那種知道改一些IO端口
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 14:01 | 顯示全部樓層
wulin 發(fā)表于 2021-11-17 09:36
按鍵是最基本的輸入設(shè)備,用單鍵實(shí)現(xiàn)多功能無非就是短按、長按、連擊等等。這就需要識別當(dāng)前操作與過往狀態(tài) ...

我發(fā)的代碼是我買模塊的商家提供的,那些代碼一個按鍵運(yùn)行沒有問題,只是不知道第二個按鍵的代碼怎么弄
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 14:11 | 顯示全部樓層
本帖最后由 cy2634900 于 2021-11-17 20:27 編輯
188610329 發(fā)表于 2021-11-17 00:12
不是難度不難度的問題, 弄幾個按鍵,基本大多數(shù)人都會,但是要切合你的實(shí)際情況,就比較麻煩了。
首先 ...

我發(fā)的代碼是我買模塊的商家提供的,那些代碼一個按鍵運(yùn)行沒有問題,只是不知道第二個按鍵的代碼怎么弄
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 14:19 | 顯示全部樓層
本帖最后由 cy2634900 于 2021-11-17 22:03 編輯
188610329 發(fā)表于 2021-11-17 00:12
不是難度不難度的問題, 弄幾個按鍵,基本大多數(shù)人都會,但是要切合你的實(shí)際情況,就比較麻煩了。
首先 ...

這些代碼不是我寫的我軟件噻也不懂,只懂硬件
回復(fù)

使用道具 舉報(bào)

ID:955271 發(fā)表于 2021-11-17 14:36 | 顯示全部樓層
看按鍵功能的,如果按鍵功能相似就復(fù)制一份,然后參數(shù)改一下就好了,如果主函數(shù)里面是用狀態(tài)機(jī)實(shí)現(xiàn)的話就需要用到switch語句
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2021-11-17 14:50 | 顯示全部樓層
cy2634900 發(fā)表于 2021-11-17 14:19
這些代碼不是我寫的我軟件噻也不懂,只懂硬件。我就是你說那種照虎畫貓的,增加按鍵的作用我很清楚,這個 ...

if(按鍵 == 1)
{
  開燈1
}
if(按鍵 == 2)
{
  開燈2
}
懂?
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 15:35 | 顯示全部樓層
lkc8210 發(fā)表于 2021-11-17 14:50
if(按鍵 == 1)
{
  開燈1

懂了 ,感謝!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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