当前位置:编程学习 > C#/ASP.NET >>

MF干活——C#点灯神话

 如同学习每一门编程语言的Hello World!一样,点灯自然成了单片机入门的HelloWorld。因为单片机上的HelloWorld实在是太难了!
    在电子上只有电压电流之类的概念,而对于单片机来说,我们可以认为0代表低电压(低电平、接地),1代表高电压(高电平)。在我们学习的STM32单片机 上,高电平其实就是3.3伏!今天我们要点亮的小灯,就是发光二极管,让3.3V和0V分别接在发光二极管的正负(长短)两端,就可以让其发光!
    我们采用的单片机有很多针脚(ZET6是144脚,VET6是100脚),一般是PA0~PA15,PB0~PB15这样子命名。理论上,我们可以把任何一个脚设为高电平或者低电平,通过单片机程序。
    那么,接线上就有两种了:一是二极管一头接一个针脚Pin,另一头接地GND脚,然后控制Pin高电平,就可以点亮;而是接两个针脚,控制让正脚(长)输出高电平,负脚(短)输出低电平,也可以点亮。
    如果用C写这个控制程序,会有点小复杂,因为你需要先设置针脚的工作模式,上拉下拉什么的,然后才可以通过01控制高低电平。我们做C#开发的同学,绝大 多数不懂这些。MF在这方面封装得很好,针对指定针脚实例化一个输出端口OutputPort,并指定初始状态true/false,然后就可以读写布尔 值了。当然,这个输出端口也可以指定上拉下拉那种模式,但是如果我们不懂,就不用那个构造函数啦。
    一般的开发板上都配有LED,就不需要我们自己去接LED啦!如果想做跑马灯什么的,可以自己去淘宝上买,一毛钱一个,10块钱可以买一百个了,不过记得买杜邦线,哈哈!
    我们来看代码:

// 红牛二
//var pins = new Cpu.Pin[] { Pins.PF6, Pins.PF7, Pins.PF8, Pins.PF9, Pins.PF10 };
// 阿波罗一号
//var pins = new Cpu.Pin[] { Pins.PE11, Pins.PE12, Pins.PE13, Pins.PE14, Pins.PE15 };
// 探索者一号
//var pins = new Cpu.Pin[] { Pins.PB11 };
// 探索者二号
//var pins = new Cpu.Pin[] { Pins.PC6, Pins.PC7 };
// 雅典娜二号var pins = new Cpu.Pin[] { Pins.PF8, Pins.PF9 };// 雅典娜三号
//var pins = new Cpu.Pin[] { Pins.PF8, Pins.PF9 };var leds = new OutputPort[pins.Length];for (int i = 0; i < pins.Length; i++)
{
    leds[i] = new OutputPort(pins[i], i % 2 == 0);
}//var led4 = new Led4();for (int i = 0; i < 20000; i++)
{
    for (int j = 0; j < leds.Length; j++)
    {
        leds[j].Write(!leds[j].Read());
    }
    //led4.Display(i);
    //led4.Value = i;

    Thread.Sleep(50);
}
 
 

    这个程序很简单,首先是实例化一个小灯所在的针脚数组,然后再创建输出端口数组,创建的时候,隔个的设置不同的初始化状态,造成小灯分开来亮的效果。我问问
    每一次大循环,都包含一次小循环,而小循环所做的,就是读出来针脚现在的值,取反后写入。大循环需要暂停一会,要不太快了也看不清楚呀,呵呵!
    然后,小灯就闪动起来了!
    到这里,也许很多人会问,点亮小灯,顶多只能做跑马灯之类的玩具而已。其实这个跟用C语言电灯一样,我们只需要稍稍改变,针脚出来接的不是小灯,而是一个继电器,那么就可以控制220v的强电了啦!剩下的就看自己要做什么了!
    本文可能非常简单,但作为单片机的MF入门来说,并非每个人都可以做得到!
    MF是微软的开源嵌入式系统框架,经过了很多年的发现,在国内一直很冷淡,可能是因为开发板极为昂贵并且移植困难吧!我们新生命团队经过不懈努力,总算找到了相对比较便宜的MF开发板(淘宝200元左右),还有可以跑MF的核心板(淘宝最低售价只需要46元);并且我们掌握了一些基础的移植技术,可以把 MF移植到比较热门和高性价比的多款板子上去。我们欢迎更多志趣相投的朋友一起来研究MF!

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,