- eBay-es kütyük kis pénzért
- hdanesz: Elektromos autózás - első élmények
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- Lalikiraly: SÜNI energiaital.
- vrob: Az IBM PC és a játékok a 80-as években
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
-
LOGOUT
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
#70211840
törölt tag
Nem tudom mennyire illik a topicba (bár szerepel a címben), kezdőként programozási kérdésem volna.
Szóljatok, ha off és menjek át a C++ programozás topicba.Elakadtam egy referencia átadásnál, nem értem miért nem csinálja meg.
Egy egyszerű I2C Scan a példa, aminél a main-ben hoznék létre és indítanék a TwoWire-t és egy másik osztályban szeretném ezt használni.
Viszont egyetlen eszközt sem talál, míg visszapakolva a loop()-ba a WireScanner::scanI2C tartalmát, rendben fut és listázza az eszközök címeit.Mit rontok el?
Test.ino
#include <Wire.h>
#include "WireScanner.h"
TwoWire wirePort(PB11, PB10); // STM32F103 I2C_2
WireScanner ws(wirePort);
void setup() {
Serial.begin(9600);
wirePort.begin();
}
void loop() {
ws.scanI2C();
delay(5000); // wait 5 seconds for next scan
}
WireScanner.h
#ifndef WireScanner_h
#define WireScanner_h
#include <Wire.h>
class WireScanner {
public:
WireScanner(TwoWire& i2cPort);
void scanI2C(void);
};
#endif
WireScanner.cpp
#include "WireScanner.h"
TwoWire _i2cPort;
WireScanner::WireScanner(TwoWire& i2cPort) {
_i2cPort = i2cPort;
}
void WireScanner::scanI2C(void) {
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++) {
_i2cPort.beginTransmission(address);
error = _i2cPort.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
nDevices++;
} else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found");
else
Serial.println("done");
}
Új hozzászólás Aktív témák
Hirdetés
- Háztartási gépek
- Assetto Corsa
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Android alkalmazások - szoftver kibeszélő topik
- PlayStation 5
- Kerékpárosok, bringások ide!
- Goddess of Victory:Nikke
- Hivatalos a OnePlus 13 startdátuma
- Kazy Computers - Fehérvár - Megbízható?
- AMD Navi Radeon™ RX 9xxx sorozat
- További aktív témák...
- Sony FE 28-70 mm F3.5-5.6 OSS
- PS5 Slim Disc 1TB 2026.10.08 GARANCIA
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 128GB SSD I 11,6" HD I Cam I W11 I Garancia!
- Bomba Ár! Dell Latitude 3190 - Intel N4120 I 4GB I 64GB SSD I 11,6" HD I Cam I W11 I Garancia!
- Bomba ár! Dell Latitude E6520 - i7-2760QM I 8GB I 256SSD I Nvidia I HDMI I 15,6" HD+ I W10 I Gari!
- LG 45GR65DC-B - 45" Ívelt 1500R / 5120x1440 / 200Hz 1ms / Adaptive Sync / AMD FreeSync / HDR 600
- Bomba ár! Dell Latitude 7320 - i5-11GEN I 8GB I 512SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
- Samsung Galaxy A35 5G 128GB Kártyafüggetlen 1Év Garanciával
- Telefon Felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged