請(qǐng)教一下關(guān)于鍵鼠例程鼠標(biāo)移動(dòng)的問(wèn)題

//鼠標(biāo)數(shù)據(jù)上傳示例

? ? ? ? case 'L': ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? HIDMouse[1] = 100;//先右移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? mDelaymS(250);

? ? ? ? ? ? HIDMouse[1] = 156;//再左移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? HIDMouse[1] = 0;

? ? ? ? ? ? break;


理論上先右移100再左移100鼠標(biāo)指針會(huì)回到原來(lái)的位置,但實(shí)測(cè)發(fā)現(xiàn)第一次右移時(shí)會(huì)少一些距離,左移正常,第二次和之后的左右移動(dòng)都正常,每次用電腦本身的鼠標(biāo)移動(dòng)過(guò)后,再用單片機(jī)模擬鼠標(biāo)移動(dòng)第一次右移都會(huì)少一些距離,不知什么原因,有沒(méi)有辦法避免這個(gè)情況。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

//鼠標(biāo)數(shù)據(jù)上傳示例

? ? ? ? case 'L': ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? HIDMouse[1] = 100;//先右移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? mDelaymS(250);

? ? ? ? ? ? HIDMouse[1] = 156;//再左移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? HIDMouse[1] = 0;

? ? ? ? ? ? break;


理論上先右移100再左移100鼠標(biāo)指針會(huì)回到原來(lái)的位置,但實(shí)測(cè)發(fā)現(xiàn)第一次右移時(shí)會(huì)少一些距離,左移正常,第二次和之后的左右移動(dòng)都正常,每次用電腦本身的鼠標(biāo)移動(dòng)過(guò)后,再用單片機(jī)模擬鼠標(biāo)移動(dòng)第一次右移都會(huì)少一些距離,不知什么原因,有沒(méi)有辦法避免這個(gè)情況。


? ? ? ? ? ?

你做的是絕對(duì)鼠標(biāo)還是相對(duì)鼠標(biāo),相對(duì)鼠標(biāo)上傳的是坐標(biāo)差如果坐標(biāo)未發(fā)生變化則x,y為0,絕對(duì)鼠標(biāo)上傳的是鼠標(biāo)絕對(duì)坐標(biāo)。

代碼如下,

相對(duì)鼠標(biāo):

x_temp = Pos_ABS( TP.X_Pos, TP.X_Pos_Last );

y_temp = Pos_ABS( TP.Y_Pos, TP.Y_Pos_Last );

/* 判斷左移還是右移 */

if( TP.X_Pos < TP.X_Pos_Last )

{

x_temp = 0x00 - x_temp;

}

/* 判斷上移還是下移 */

if( TP.Y_Pos < TP.Y_Pos_Last )

{

y_temp = 0x00 - y_temp;

}


絕對(duì)鼠標(biāo):

MOUSE_Relative_Up_Pack( TP.Key, x_temp, y_temp, 0x00 );


x_temp = TP.X_Pos;

y_temp = TP.Y_Pos;

MOUSE_Absolute_Up_Pack( TP.Key, x_temp, y_temp, 0x00 );



? ? ? ? ? ? ? ? ? ? ? ? ? ?


引用:

? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?

//鼠標(biāo)數(shù)據(jù)上傳示例

? ? ? ? case 'L': ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? HIDMouse[1] = 100;//先右移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? mDelaymS(250);

? ? ? ? ? ? HIDMouse[1] = 156;//再左移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? HIDMouse[1] = 0;

? ? ? ? ? ? break;


理論上先右移100再左移100鼠標(biāo)指針會(huì)回到原來(lái)的位置,但實(shí)測(cè)發(fā)現(xiàn)第一次右移時(shí)會(huì)少一些距離,左移正常,第二次和之后的左右移動(dòng)都正常,每次用電腦本身的鼠標(biāo)移動(dòng)過(guò)后,再用單片機(jī)模擬鼠標(biāo)移動(dòng)第一次右移都會(huì)少一些距離,不知什么原因,有沒(méi)有辦法避免這個(gè)情況。



? ? ? ? ? ?


你做的是絕對(duì)鼠標(biāo)還是相對(duì)鼠標(biāo),相對(duì)鼠標(biāo)上傳的是坐標(biāo)差如果坐標(biāo)未發(fā)生變化則x,y為0,絕對(duì)鼠標(biāo)上傳的是鼠標(biāo)絕對(duì)坐標(biāo)。

代碼如下,

相對(duì)鼠標(biāo):

x_temp = Pos_ABS( TP.X_Pos, TP.X_Pos_Last );

y_temp = Pos_ABS( TP.Y_Pos, TP.Y_Pos_Last );

/* 判斷左移還是右移 */

if( TP.X_Pos < TP.X_Pos_Last )

{

x_temp = 0x00 - x_temp;

}

/* 判斷上移還是下移 */

if( TP.Y_Pos < TP.Y_Pos_Last )

{

y_temp = 0x00 - y_temp;

}


絕對(duì)鼠標(biāo):

MOUSE_Relative_Up_Pack( TP.Key, x_temp, y_temp, 0x00 );


x_temp = TP.X_Pos;

y_temp = TP.Y_Pos;

MOUSE_Absolute_Up_Pack( TP.Key, x_temp, y_temp, 0x00 );


? ? ? ? ? ? ? ? ? ? ? ?

是下載官方CH554EVT中的鍵鼠例程,只是將原本串口收到L摸擬鼠標(biāo)左鍵按下,改成了模擬鼠標(biāo)左100再右移100回到原位,功能可以實(shí)現(xiàn),只是在電腦真正的鼠標(biāo)移動(dòng)過(guò)后,再用單片機(jī)模擬移動(dòng),第一次串口收到L右移會(huì)少一些距離,之后再收到L才左右移動(dòng)距離都相等。


? ? ? ? ? ? ? ? ? ? ? ? ? ?


引用:

? ? ? ? ? ? ? ? ? ? ? ? ? ?


引用:

? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?

//鼠標(biāo)數(shù)據(jù)上傳示例

? ? ? ? case 'L': ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? HIDMouse[1] = 100;//先右移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? mDelaymS(250);

? ? ? ? ? ? HIDMouse[1] = 156;//再左移100

? ? ? ? ? ? Enp2IntIn();

? ? ? ? ? ? HIDMouse[1] = 0;

? ? ? ? ? ? break;


理論上先右移100再左移100鼠標(biāo)指針會(huì)回到原來(lái)的位置,但實(shí)測(cè)發(fā)現(xiàn)第一次右移時(shí)會(huì)少一些距離,左移正常,第二次和之后的左右移動(dòng)都正常,每次用電腦本身的鼠標(biāo)移動(dòng)過(guò)后,再用單片機(jī)模擬鼠標(biāo)移動(dòng)第一次右移都會(huì)少一些距離,不知什么原因,有沒(méi)有辦法避免這個(gè)情況。



? ? ? ? ? ?



你做的是絕對(duì)鼠標(biāo)還是相對(duì)鼠標(biāo),相對(duì)鼠標(biāo)上傳的是坐標(biāo)差如果坐標(biāo)未發(fā)生變化則x,y為0,絕對(duì)鼠標(biāo)上傳的是鼠標(biāo)絕對(duì)坐標(biāo)。

代碼如下,

相對(duì)鼠標(biāo):

x_temp = Pos_ABS( TP.X_Pos, TP.X_Pos_Last );

y_temp = Pos_ABS( TP.Y_Pos, TP.Y_Pos_Last );

/* 判斷左移還是右移 */

if( TP.X_Pos < TP.X_Pos_Last )

{

x_temp = 0x00 - x_temp;

}

/* 判斷上移還是下移 */

if( TP.Y_Pos < TP.Y_Pos_Last )

{

y_temp = 0x00 - y_temp;

}


絕對(duì)鼠標(biāo):

MOUSE_Relative_Up_Pack( TP.Key, x_temp, y_temp, 0x00 );


x_temp = TP.X_Pos;

y_temp = TP.Y_Pos;

MOUSE_Absolute_Up_Pack( TP.Key, x_temp, y_temp, 0x00 );



? ? ? ? ? ? ? ? ? ? ? ?


是下載官方CH554EVT中的鍵鼠例程,只是將原本串口收到L摸擬鼠標(biāo)左鍵按下,改成了模擬鼠標(biāo)左100再右移100回到原位,功能可以實(shí)現(xiàn),只是在電腦真正的鼠標(biāo)移動(dòng)過(guò)后,再用單片機(jī)模擬移動(dòng),第一次串口收到L右移會(huì)少一些距離,之后再收到L才左右移動(dòng)距離都相等。

? ? ? ? ? ? ? ? ? ? ? ?


我測(cè)試一下,模擬的鼠標(biāo)確實(shí)有這問(wèn)題,但是例程上模擬的鼠標(biāo)也是按照真實(shí)鼠標(biāo)來(lái)做的??赡苁窍到y(tǒng)的問(wèn)題,硬件上不太好解決,可以改成絕對(duì)鼠標(biāo)試試。但絕對(duì)鼠標(biāo)也存在系統(tǒng)兼容性的問(wèn)題,在Android上可能會(huì)用不起來(lái),可告知您的具體應(yīng)用至我司:rz@wch.cn


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频