Yoctopuce Yocto-I2C Mode D'emploi page 71

Table des Matières

Publicité

i2cSendAndReceiveArray
La méthode
i2cSendAndReceiveArray()
sur le bus I2C à l'adresse spécifiée, et lit en retour le nombre d'octets spécifié du même
périphérique.
Un exemple réel
Lancez votre environnement C++ et ouvrez le projet exemple correspondant, fourni dans le
répertoire Examples/Doc-GettingStarted-Yocto-I2C de la librairie Yoctopuce. Si vous préférez
travailler avec votre éditeur de texte préféré, ouvrez le fichier
dans le répertoire de l'exemple pour le compiler.
make
Vous reconnaîtrez dans cet exemple l'utilisation des fonctions expliquées ci-dessus, cette fois
utilisées avec le décorum nécessaire à en faire un petit programme d'exemple concret.
#include "yocto_api.h"
#include "yocto_i2cport.h"
#include <iostream>
#include <stdlib.h>
using namespace
std;
static void
usage(void)
{
cout
<<
"usage: demo <serial_number>"
cout
<<
"
cout
<<
"
u64
now
= YAPI::GetTickCount();
while (YAPI::GetTickCount() -
// wait 3 sec to show the message
}
exit(1);
}
int main(int
argc,
{
string
errmsg;
string
target;
YI2cPort
*i2cPort;
if
(argc
< 2) {
usage();
}
target
= (string) argv[1];
// Setup the API to use local USB devices
if
(YAPI::RegisterHub("usb",
cerr
<<
"RegisterHub error: "
return 1;
}
if
(target
== "any") {
i2cPort
= YI2cPort::FirstI2cPort();
if
(i2cPort
== NULL) {
cerr
<<
"No module connected (check USB cable)"
return 1;
}
} else {
target
= (string) argv[1];
i2cPort
=
YI2cPort::FindI2cPort(target
if (!i2cPort->isOnline()) {
cerr
<<
"Module not connected (check USB cable)"
return 1;
}
}
// sample code reading MCP9804 temperature sensor
i2cPort->set_i2cMode("400kbps");
i2cPort->set_i2cVoltageLevel(YI2cPort::I2CVOLTAGELEVEL_3V3);
i2cPort->reset();
// do not forget to configure the powerOutput and
// of the Yocto-I2C as well if used
cout
<<
"****************************"
cout
<<
"* make sure voltage levels *"
www.yoctopuce.com
demo <logical_name>"
demo any
(use any discovered device)"
now
< 3000) {
const char
* argv[])
errmsg) != YAPI::SUCCESS) {
<<
errmsg
envoie une commande faite d'un ou plusieurs octets
main.cpp
<< endl;
<< endl;
<< endl;
<< endl;
+ ".i2cPort");
<< endl;
<< endl;
<< endl;
10. Utilisation du Yocto-I2C en C++
, vous taperez simplement
<< endl;
63

Publicité

Table des Matières
loading

Table des Matières