bonjour,
je dois utiliser un expandeur de bus I2C MCP23016 avec la librairie wiringPiI2C sur mon système.
I2cdetect détecte le MPC sans problème entre les adresses de base 0x20 et 0x27 mais mon programme retourne généralement la valeur -1.
J'ai écrit ces lignes dans un programme de test pour lire les entrées du port GP0:
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <mcp23016.h> #include <wiringPi.h> #include <wiringPiI2C.h> using namespace std; int main() { int fd; fd = wiringPiI2CSetup(0x27) ; mcp23016Setup(66, 0x27); wiringPiI2CWriteReg16(fd, 0x04, 0x00); //Input_Polarity_Register wiringPiI2CWriteReg16(fd, 0x06, 0xff); //GP0 as input port cout << " Read GP0 : " << wiringPiI2CReadReg8(fd, 0x00) << endl; return(0); }
Quelques fois, je lis la bonne valeur mais le plus souvent, je lis -1.
Sur la sortie TP du MCP23016, j'ai un beau signal carré à 1,3MHz.
Si quelqu'un a déjà mis en oeuvre ce composant, je suis preneur d'une solution.
Merci.
Partager