我的 Netduino 2

时间:2014-05-01 20:09:08   收藏:0   阅读:632
关注net mf半个月了,一直在Netduino论坛、net mf群里潜水学习,有了一些收获。
前两天开始画PCB,基于Netduino2,精简了大部分内容,只保留了2个LED,2个按键。
它看起来像这样:
 
mamicode.com,码迷
 
实物图:
 
mamicode.com,码迷
 
我使用Jlink下载Tinybooter,2线SWD方式,下载十分方便~我尝试了Tinybooter.s19、Tinybooter.hex、Tinybooter.bin,但它们并没有开始工作,windows没有得到任何反馈,看起来完全不是新设备接入的样子
 ╭(;?д?)╮
检查硬件后发现LED(PA10)忘加10k上拉,pdf中备注启动时必须为高,飞线连接后还是不能连接。
感觉一直有什么事没完成,,仔细一看 USB只焊了GND&VBUS,重新焊接 连上主机即提示:
 
 mamicode.com,码迷
 
更新固件至4.3.1.0
重新上电 MFDeploy 识别正常 :D 马上用VS2013写了个 sample~
 
mamicode.com,码迷
OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
while(true)
{
    led.Write(true);
    Thread.Sleep(250);
    led.Write(false);
    Thread.Sleep(250);
}
mamicode.com,码迷

它看起来像这样 :D 

mamicode.com,码迷
 
写了按键sample,在单片机中用事件驱动~
mamicode.com,码迷
InterruptPort button = new InterruptPort(Pins.ONBOARD_SW1, true, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeHigh);
button.OnInterrupt += new NativeEventHandler(button_OnInterrupt);

InterruptPort button1 = new InterruptPort(Pins.GPIO_PIN_D3, true, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeLow);
button1.OnInterrupt += new NativeEventHandler(button_OnInterrupt);

//在对应边沿触发,使用了软件防抖
static void button_OnInterrupt(uint data1, uint data2, DateTime time)
{
    if (lasttime.AddMilliseconds(400) < time)
    {
        Debug.Print(data1.ToString() + "," + data2.ToString() + "," + time.ToString());
        lasttime = time;
        ledflag = !ledflag;
        led.Write(ledflag);
    }
}
mamicode.com,码迷

后面测试了多线程,实现也比较简单,C#写代码十分舒服~

下一步准备diy具备更多外设的Netduino2 & Netduino Plus 2~

我的 Netduino 2,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!