本篇文章給大家分享的是有關(guān)如何進(jìn)行.Net Micro Framework下的IO模擬器研究,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)是專業(yè)的玉山網(wǎng)站建設(shè)公司,玉山接單;提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行玉山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
原打算用MF開發(fā)一個(gè)類似Windows桌面的程序(因?yàn)榘l(fā)現(xiàn)MF居然支持漸進(jìn)色,可以繪很炫的界面),由于目前的模擬器僅支持5個(gè)鍵,所以在做類Windows開始菜單的時(shí)候犯了難,4個(gè)方向鍵和一個(gè)OK鍵,沒有一個(gè)適合做開始菜單鍵的。記得Digi的模擬器至少支持9個(gè)鍵,既然他能做,理論上我也可以。一陣研究后還真有了成效,在五個(gè)鍵的基礎(chǔ)上我又添加了兩個(gè)鍵,一個(gè)是菜單鍵(對(duì)應(yīng)PC鍵盤可以是Windows鍵或空格鍵),一個(gè)是返回鍵(對(duì)應(yīng)PC鍵盤上的ESC鍵),也就是說我原來做得模擬器上的那兩個(gè)鍵終于起作用了。
添加完這兩個(gè)鍵后,突然靈機(jī)一動(dòng),以前我苦苦不能做的IO模擬功能,應(yīng)該也可以做了,做Windows界面的心沒有了,轉(zhuǎn)為一心研究IO模擬器了,功夫不負(fù)有心人,幾個(gè)小時(shí)后便大功能告成了。把以前Digi開發(fā)的IO測試程序稍加調(diào)整一下就可以試了(需要重新設(shè)置一下Pin)。運(yùn)行界面如下:
publicclassDigiTest
{
publicstaticvoidMain()
{
//Digi
//Cpu.Pin[]pin=newCpu.Pin[5]{(Cpu.Pin)0,(Cpu.Pin)1,(Cpu.Pin)2,
(Cpu.Pin)5,(Cpu.Pin)6};OutputPort[]output=newOutputPort[8];
InputPort[]input=newInputPort[8];
//葉帆模擬器GPIO的pin定義
Cpu.Pin[]pin_I=newCpu.Pin[8]{(Cpu.Pin)10,(Cpu.Pin)11,(Cpu.Pin)12,
(Cpu.Pin)13,(Cpu.Pin)14,(Cpu.Pin)15,(Cpu.Pin)16,(Cpu.Pin)17};Cpu.Pin[]pin_Q=newCpu.Pin[8]{(Cpu.Pin)20,(Cpu.Pin)21,(Cpu.Pin)22,
(Cpu.Pin)23,(Cpu.Pin)24,(Cpu.Pin)25,(Cpu.Pin)26,(Cpu.Pin)27};for(inti=0;i<8;i++)
{
input[i]=newInputPort(pin_I[i],false,Port.ResistorMode.PullDown);
output[i]=newOutputPort(pin_Q[i],false);
}
intintNum=0;
while(true)
{
output[intNum].Write(!output[intNum].Read());
Debug.Print(input[0].Read().ToString()+""+input[1].Read().
ToString()+""+input[2].Read().ToString()+""+input[3].Read().
ToString()+""+input[4].Read().ToString()+""+input[5].Read().
ToString()+""+input[6].Read().ToString()+""+input[7].Read().ToString());Thread.Sleep(1000);
if(++intNum>7)intNum=0;
}
}
}
運(yùn)行后,效果果然不錯(cuò),改變輸入,則調(diào)試信息中出現(xiàn)對(duì)應(yīng)的變化(通過這個(gè)也深刻理解了new InputPort(pin_I[i], false, Port.ResistorMode.PullDown)中的上拉和下拉的含義),同時(shí)程序中改變輸出,則對(duì)應(yīng)的輸出燈也在同步亮滅。
細(xì)心的讀者會(huì)發(fā)現(xiàn),我的模擬器可以讓InputPort和OutputPort的實(shí)例同時(shí)運(yùn)行,原因就是他們的Pin值不同,而Digi的I/O共用了0、1、2、5、6(天知道他們?yōu)槭裁匆@樣?)。
以后在測試相關(guān)的IO應(yīng)用,不必接上硬件了,直接用模擬器就可以了。不知道模擬器是否支持串口模擬(映射PC機(jī)物理串口),以后有時(shí)間研究一下。不過我想TCP/IP一定會(huì)有問題,一是MF目前的TCP/IP都不完善,第二模擬器目前也不可能支持虛擬網(wǎng)卡(類似PPC模擬器或虛擬機(jī))。
目前模擬器支持8路數(shù)字量入,8路數(shù)字量出,模擬量以后有機(jī)會(huì)在加入。
[注:目前微軟官方的模擬器僅支持LCD和5個(gè)按鍵功能,其它的都不支持]
以上就是如何進(jìn)行.Net Micro Framework下的IO模擬器研究,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。