c# 硬件开源神器netduino的开发中慎用Cpu.Pin
来源:互联网 发布:广数系统g76编程实例 编辑:程序博客网 时间:2024/05/17 21:57
最近为了测试netduino开发板的各个端口是否正常使用,让同事写了一些测试程序,结果出了问题,他的测试程序导致开发板无法发布程序进去,按他的结论是开发板有问题,针对这个情况,我们经过仔细分析代码,认为问题出在代码的写法上。代码如下
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using System.IO.Ports;
using System.Text;
namespace NetduinoApplication1
{
public class Program
{
static SerialPort _SerialPort;
public static void Main()
{
OutputPort op = new OutputPort(Cpu.Pin.GPIO_Pin12, false);
while (true)
{
op.Write(false);
Debug.Print(op.Read().ToString());
Thread.Sleep(1000);
op.Write(true);
Debug.Print(op.Read().ToString());
Thread.Sleep(1000);
}
}
}
}
代码很简单吧,只是在读取和设置GPIO_PIN12。不过总感觉有不对劲的地方,代码中OutputPort op = new OutputPort(Cpu.Pin.GPIO_Pin12, false);这部分感觉不对
原因很简单,我曾经分析过SecretLabs.NETMF.Hardware.Netduino,在这里看到过针对于netduino的管脚封装,因此基本可以判定是管脚不一致导致的。
重新刷固件后,修改代码为
先using SecretLabs.NETMF.Hardware.Netduino;
再修改OutputPort op = new OutputPort(Cpu.Pin.GPIO_Pin12, false);
为
OutputPort op= new OutputPort(Pins.GPIO_PIN_D12, false);
运行一切正常,后来查资料,原因是netduino的管脚封装和micr framework的管脚封装不同导致的,netduino的封装上跟arduino一样,所以导致了这个问题。
但私下想为啥就不能netduino的管脚与mircro framework一样呢,这真的很奇怪,这个答案得问那帮搞netduino开源的人。
我的淘宝
http://item.taobao.com/item.htm?spm=a230r.1.14.206.XnsUQY&id=21448079990
- c# 硬件开源神器netduino的开发中慎用Cpu.Pin
- 可以用C#开发的开源利器Netduino之怎么刷固件
- 来用C#在开源硬件Netduino上搞个httpserver吧
- 来用C#在开源硬件Netduino上搞个httpserver吧
- 开发中常用的app神器
- 手机硬件开发之CPU
- 什么叫硬件pin
- Netduino与Arduino的对比
- TFT ST7735的Netduino驱动
- C#获取CPU网卡等硬件信息
- C# 获取硬件信息 CPU、MAC等
- C#获取CPU等硬件ID
- 硬件工程师在硬件开发中要注意的事项
- 硬件工程师在硬件开发中要注意的事项
- 用开源硬件netduino将数据显示在lcd吧
- 安卓开发中必备的那些神器APP
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- 数组与对象
- Script标签与访问HTML页面
- 淘宝客导购产品设计 (一)
- ECMAScript语法基础
- ThinkPHP的orm和三大自动
- c# 硬件开源神器netduino的开发中慎用Cpu.Pin
- 值,类型与类型转换
- LINQ to Entities
- 结束线程
- QT5之qml元素emitter
- 关于mysql ordery by字段全部为null的结果疑问
- 引用类型
- 运算符、语句
- HDOJ 4614 - Vases and Flowers/2013多校联合第二场D 区间更新线段树+二分