zoukankan      html  css  js  c++  java
  • c# 硬件开源神器netduino的开发中慎用Cpu.Pin

        最近为了测试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

  • 相关阅读:
    小程序页面跳转 之 js页面函数绑定跳转
    win10系统激活提示无法连接到你组织的激活服务器如何解决
    小程序请求后端接口实例
    cors解决跨域问题
    aes加密 工具类
    后端解决跨域的问题
    理解传输层中UDP协议首部校验和以及校验和计算方法的Java实现
    常见面试题之操作系统中的LRU缓存机制实现
    Java算法之根据二叉树不同遍历结果重建二叉树
    基于Java的二叉树层序遍历打印实现
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3239148.html
Copyright © 2011-2022 走看看