- Megjött a Razer DeathAdder egerek legfrissebb nemzedéke
- Ismét minimalista miditorony érkezett a Fractal Design műhelyéből
- Alakul a SpaceX Starlink európai ellenfele
- Digital Fingerprinting: Így buktat le a böngésződ a neten - Tech Percek #18
- Prezentálta PCI Express 6.0-s SSD-vezérlőjét a Silicon Motion
-
PROHARDVER!
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
- OHH! Dell Precision 7560 Tervező Vágó Laptop -70% 15,6" i7-11850H 32/1TB NVIDIA A3000 6GB FHD
- Asztali PC , i7 6700K , 1080 Ti 11GB , 32GB DDR4 , 500GB NVME , 500GB HDD
- Asztali PC , R5 8400F , RTX 3070 , 32GB DDR5 , 500GB NVME , 2TB HDD
- Legion Go 1TB
- Lenovo LOQ 15IRX9 - i5 13450HX, 16GB, RTX 4060 8G, 1TB M.2 (Gari: 2027.03.11.)
- Samsung Galaxy S24 Ultra 512GB Kártyafüggetlen 1Év Garanciával
- Fotó állvány eladó
- Új! Számla + 1-3ÉV Gari! Áfás! Gamer PC - Számítógép! R5 8400F / RX 9060XT / 32GB DDR5 / 1TB SSD M.2
- BESZÁMÍTÁS! Intel Core i7 8700K 6 mag 12 szál processzor garanciával hibátlan működéssel
- Telefon felvásárlás!! Samsung Galaxy A50/Samsung Galaxy A51/Samsung Galaxy A52/Samsung Galaxy A53
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest