目录
树莓派windows iot 开发(一)
树莓派windows iot 开发(二) USB摄像机
树莓派windows iot 开发(三) 闪烁的LED
树莓派windows iot 开发(四) UART接口
树莓派windows iot 开发(五) SPI接口
树莓派windows iot开发(三)闪烁的LED
首先需要准备的材料:
树莓派开发板3B一块,还有电源、网线、显示器、鼠标等等主要设备;
实验项目材料:
一个电阻1K欧姆,和LED灯一个,杜邦导线两条。
我只是简单的做个实验,也没必要非弄个“面包板”
然后到网站上下载资料。
https://docs.microsoft.com/en-us/samples/microsoft/windows-iotcore-samples/hello-blinky/
根据扩展端口开始连线,项目中的电源是选择的3.3V电源,板子上也可以是5V。我选择的是3.3V。
输出引脚选择的是“GPIO 5”作为输出。
将项目用VS2019打开。
配置好远程主机。
就可以开始试着运行了。程序启动后,可以看到led灯不停的闪烁。与屏幕上红色亮点是同步的。
其实这个项目没有什么难度,只是能够证明windows 也可以用来做控制用。记得公司使用PC104来开发项目,那时主要的考虑是因为intel cpu的计算能力比较强。因为系统中的仪器需要比较复杂的计算。看来使用树莓派这种板子也是可以的。而且价格也是PC104不能比的。下面分析一下代码:
public sealed partial class MainPage : Page
{
private const int LED_PIN = 5;
private GpioPin pin;
private GpioPinValue pinValue;
private DispatcherTimer timer;
private SolidColorBrush redBrush = new SolidColorBrush(Windows.UI.Colors.Red);
private SolidColorBrush grayBrush = new SolidColorBrush(Windows.UI.Colors.LightGray);
public MainPage()
{
InitializeComponent();
timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(500);
timer.Tick += Timer_Tick;
InitGPIO();
if (pin != null)
{
timer.Start();
}
}
private void InitGPIO()
{
var gpio = GpioController.GetDefault();
// Show an error if there is no GPIO controller
if (gpio == null)
{
pin = null;
GpioStatus.Text = "There is no GPIO controller on this device.";
return;
}
pin = gpio.OpenPin(LED_PIN);
pinValue = GpioPinValue.High;
pin.Write(pinValue);
pin.SetDriveMode(GpioPinDriveMode.Output);
GpioStatus.Text = "GPIO pin initialized correctly.";
}
private void Timer_Tick(object sender, object e)
{
if (pinValue == GpioPinValue.High)
{
pinValue = GpioPinValue.Low;
pin.Write(pinValue);
LED.Fill = redBrush;
}
else
{
pinValue = GpioPinValue.High;
pin.Write(pinValue);
LED.Fill = grayBrush;
}
}
第一步:初始化设备
var gpio = GpioController.GetDefault();
这是个函数是让驱动程序初始化一下。接下来判断一下是否成功。因为有些设备不一定有GPIO驱动。尤其是intel的有些主板。
pin = gpio.OpenPin(LED_PIN);
pinValue = GpioPinValue.High;
pin.Write(pinValue);
pin.SetDriveMode(GpioPinDriveMode.Output);
打开GPIO5,设置默认输出,在定义GPIO为输出。
利用pin.Write(pinValue);函数设置引脚的电平。
pinValue = GpioPinValue.High;
pin.Write(pinValue);
利用windows丰富的图形界面可以做出很多不错的程序。
此内容由EEWORLD论坛网友bigbat原创,如需转载或用于商业用途需征得作者同意并注明出处