2016-09-24 5 views
-1

Ich bin nicht vertraut mit der Sprache C. Ich studiere es.Wie wird die Ganzzahl den Zeigerdaten zugewiesen?

Ich habe eine Funktion, wie diese aussieht. Ich versuche immer, ganzzahlige Daten zu uint8_t * Daten zuzuweisen, tut es aber nicht. Ich habe einen Fehler 0x00 stimmt nicht mit Uint8_t * Daten überein. Wie weise ich meine Integer (0x00) Daten dorthin zu?

sccb_write_reg(0x01, 0x00); //<---it makes error 


void sccb_write_reg(uint16_t reg, uint8_t *data) 
{ 
... 
... 
} 

Bitte lassen Sie mich wissen, wie Sie dieses Problem lösen können?

Antwort

3

Für diesen speziellen Fall sagen die Kontext Anhaltspunkte uns dort data in der aufrufenden Funktion sein sollte und Sie sollten seine Adresse in geben:

uint8_t data = 0x00; 
uin16_t reg = 0x01; 
sccb_write_reg(reg, &data); 

Notiere die Ampersand (&) vor dem data. Das sagt "Pass in die Adresse data" was ist eine uint8_t * ist, ist es eine Speicheradresse.

2
uint8_t parameter = 0x00; 
sccb_write_reg(0x01, &parameter); 
Verwandte Themen