我在这里使用提供的代码-> RFID RC522 Raspberry PI 2 Windows IOT
我正在文本框中打印uid,但程序在此步骤中停止:
await mfrc.InitIO();
我的代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Text;
using System.Net.Http;
using Windows.ApplicationModel.Background;
using Windows.System.Threading;
using Windows.Devices.Gpio;
using Mfrc522Lib;
using Windows.Devices.Enumeration;
using Windows.Devices.Spi;
namespace rfid
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
public async void InitRC522Async()
{
var mfrc = new Mfrc522();
await mfrc.InitIO();
while (true)
{
if (mfrc.IsTagPresent())
{
var uid = mfrc.ReadUid();
textbox_1.Text = uid.ToString();
mfrc.HaltTag();
}
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
InitRC522Async();
}
}
}
您可以使用Device Portal将默认的控制器驱动程序更改为Inbox驱动程序。直接内存映射驱动程序用于lightning providers。顺便说一句,您需要在更改默认控制器驱动程序设置后重新启动设备。
我已经为我的RFID考勤系统实现了相同的参考,RFID RC522 Raspberry PI 2 Windows IOT,我发现将检测到的UID打印到xaml文本框中会冻结程序。
要解决此问题,您可以使用任务延迟。这允许文本框在检测到标签后进行更新。
var mfrc = new Mfrc522();
await mfrc.InitIO();
while(true)
{
if (mfrc.IsTagPresent())
{
var uid = mfrc.ReadUid().ToString();
string uidString = uid;
textbox1.Text = uidString;
mfrc.HaltTag();
await Task.Delay(TimeSpan.FromSeconds(1));
}
}
如何构建Raspberry pi RFID考勤系统https://mechatronicslabrpi.blogspot.com/2020/05/raspberry-pi-rfid-attendance-system%20.html