在Microbit V1上使用Ada读取i2c传感器数据

在Microbit V1上使用Ada读取i2c传感器数据,ada,Ada,是否有使用Ada从i2c传感器读取数据的示例?我正在使用Microbit v1进行编程。我有一个使用i2c在Arduino和Microbit之间进行通信的示例 -- Request a character from the I2C slave and -- display it on the 5x5 display in a loop. with HAL.I2C; use HAL.I2C; with MicroBit.Display; use MicroBit.Displ

是否有使用Ada从i2c传感器读取数据的示例?我正在使用Microbit v1进行编程。我有一个使用i2c在Arduino和Microbit之间进行通信的示例

--  Request a character from the I2C slave and
--  display it on the 5x5 display in a loop.

with HAL.I2C;          use HAL.I2C;
with MicroBit.Display; use MicroBit.Display;
with MicroBit.I2C;
with MicroBit.Time;

procedure Main is
   Ctrl   : constant Any_I2C_Port := MicroBit.I2C.Controller;
   Addr   : constant I2C_Address := 16;
   Data   : I2C_Data (0 .. 0);
   Status : I2C_Status;
begin

   MicroBit.I2C.Initialize (MicroBit.I2C.S100kbps);
   if MicroBit.I2C.Initialized then
      --  Successfully initialized I2C
      Display ('I');  
   else
      --  Error initializing I2C
      Display ('E');  
   end if;
   MicroBit.Time.Delay_Ms (2000);
   MicroBit.Display.Clear;

   loop
      --  Request a character
      Ctrl.Master_Receive (Addr => Addr, Data => Data, Status => Status);

      --  Display the character or the error
      if Status = Ok then
         Display (Character'Val (Data (0)));
      else
         MicroBit.Display.Display (Status'Image);
      end if;

      --  Give the user time to read the display
      MicroBit.Time.Delay_Ms (1000);
      MicroBit.Display.Clear;
      MicroBit.Time.Delay_Ms (250);
   end loop;
end Main; 

如何调整它以从传感器读取数据并将数据写入外部OLED显示器

还不完全清楚“传感器”和“OLED显示器”是什么意思。从传感器读取数据和写入OLED显示设备的方式因产品而异。您需要查阅产品的数据表以了解协议细节,并在此基础上编写一些处理这些细节的驱动程序。然而,您可能很幸运,您想要使用的传感器和显示器的驱动程序已经存在。例如,请参见。如果没有,那么链接中列出的驱动程序可以作为编写自己的驱动程序的示例。您显示的代码是否是您想要使用的代码?它跑吗?如果没有,怎么没有?如果它真的运行了,你希望它做什么?它实际上做什么?(我还没有谈到OLED显示器,那将是一场完全不同的球赛)还不完全清楚“传感器”和“OLED显示器”是什么意思。从传感器读取数据和写入OLED显示设备的方式因产品而异。您需要查阅产品的数据表以了解协议细节,并在此基础上编写一些处理这些细节的驱动程序。然而,您可能很幸运,您想要使用的传感器和显示器的驱动程序已经存在。例如,请参见。如果没有,那么链接中列出的驱动程序可以作为编写自己的驱动程序的示例。您显示的代码是否是您想要使用的代码?它跑吗?如果没有,怎么没有?如果它真的运行了,你希望它做什么?它实际上做什么?(我还没有谈到OLED显示屏,那将是一场完全不同的球赛)