在Microbit V1上使用Ada读取i2c传感器数据
是否有使用Ada从i2c传感器读取数据的示例?我正在使用Microbit v1进行编程。我有一个使用i2c在Arduino和Microbit之间进行通信的示例在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
-- 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显示屏,那将是一场完全不同的球赛)