2016-02-20 136 views
0

1.我尝试使用Raspberry Pi作为主设备,并将PIC16F1847作为从设备。 从站向主站发送50个字节。 但是,我遇到了C#编程的问题。 向下的C#代码不被接受,即“y”阵列。 任何人都可以帮忙吗? 2,本是代码:Windows iot(c#) - Raspberry PI - I2C

private I2cDevice PicDevice; 

    public class StartSpanning 
    { 
     public string Name { get; set; } 
     public int Amount { get; set; } 
    } 

    public MainPage() 
    { 
     this.InitializeComponent(); 
     this.Loaded += MainPage_Loaded; 
     initI2c(); 
    } 

    private void MainPage_Loaded(object sender, RoutedEventArgs e) 
    { 
     LoadChartContents(); 
    } 

    async void initI2c() 
    { 
     string i2c1 = I2cDevice.GetDeviceSelector();        // Get a selector string that will return all I2C controllers on the system 
     var devices = await DeviceInformation.FindAllAsync(i2c1); 
     var I2Csettings = new I2cConnectionSettings(0x05);       // Adrress PIC 
     I2Csettings.BusSpeed = I2cBusSpeed.StandardMode;       // 100KHz bus speed 
     PicDevice = await I2cDevice.FromIdAsync(devices[0].Id, I2Csettings); 

     byte[] y = new byte[50]; 
     var result = PicDevice.ReadPartial(y); 
    } 

    private void LoadChartContents() 
    { 

     List<StartSpanning> lijst_spanning = new List<StartSpanning>(); 
     lijst_spanning.Add(new StartSpanning() { Name = "1", Amount = y[0] }); 
     lijst_spanning.Add(new StartSpanning() { Name = "2", Amount = y[1] }); 
     lijst_spanning.Add(new StartSpanning() { Name = "3", Amount = y[2] }); 
     lijst_spanning.Add(new StartSpanning() { Name = "4", Amount = y[3] }); 
     lijst_spanning.Add(new StartSpanning() { Name = "5", Amount = y[4] }); 
     lijst_spanning.Add(new StartSpanning() { Name = "6", Amount = y[5] }); 
     lijst_spanning.Add(new StartSpanning() { Name = "7", Amount = y[6] });   
+0

究竟是什么意思?“不接受C#代码是不被接受的,”y“ - 阵列。”? – yaakov

+0

y [0],y [1],y [2],ec ..是红色下划线。 – JohanXR

回答

1

它看起来像Y已被该initI2c方法因此不能从LoadChartContents方法来调用内部声明。