我的 Netduino 2

作者在关注Netduino平台半个月后,分享了从学习到实践的过程,包括硬件设计、PCB绘制、Tinybooter固件加载及基础功能实现(如LED控制、按键事件驱动)。遇到的问题如上拉电阻、USB接线错误等,最终成功解决并进行了多线程代码编写。展望未来,计划进一步定制更多外设。
关注net mf半个月了,一直在Netduino论坛、net mf群里潜水学习,有了一些收获。
前两天开始画PCB,基于Netduino2,精简了大部分内容,只保留了2个LED,2个按键。
它看起来像这样:
 
PCB
 
实物图:
 
实物图
 
我使用Jlink下载Tinybooter,2线SWD方式,下载十分方便~我尝试了Tinybooter.s19、Tinybooter.hex、Tinybooter.bin,但它们并没有开始工作,windows没有得到任何反馈,看起来完全不是新设备接入的样子
 ╭(;ŎдŎ)╮
检查硬件后发现LED(PA10)忘加10k上拉,pdf中备注启动时必须为高,飞线连接后还是不能连接。
感觉一直有什么事没完成,,仔细一看 USB只焊了GND&VBUS,重新焊接 连上主机即提示:
 
 驱动安装
 
更新固件至4.3.1.0
重新上电 MFDeploy 识别正常 :D 马上用VS2013写了个 sample~
 
OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
while(true)
{
    led.Write(true);
    Thread.Sleep(250);
    led.Write(false);
    Thread.Sleep(250);
}

它看起来像这样 :D 

LED Sample
 
写了按键sample,在单片机中用事件驱动~
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);
    }
}

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

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

转载于:https://www.cnblogs.com/yitiandelan/p/My_Netduino_2.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值