Ich muss bestimmte Daten zu einem FPGA mit SPI mit meinem LPC1769 senden. Allerdings verstehe ich nicht ganz, wie ich das angehen soll. Ich habe derzeit diesen Code, der im Hardfault-Handler endet. Ich darf CMSIS nicht verwenden, daher musste ich die Register selbst definieren.SPI-Peripherie auf LPC1769
void sendData(uint8_t *buf, uint32_t Length) {
uint32_t i;
for (i = 0; i < Length; i++) {
while (S0SPSR != (1 << 7)) {
S0SPDR = *buf;
gpio0WritePin(15, 1);
gpio0WritePin(15, 0);
buf++;
}
}
return;
}
und meine Hauptfunktion:
uint8_t TX[16];
int main(void) {
SpiInit();
TX[0] = 0x48;
TX[1] = 0x65;
TX[2] = 0x6c;
TX[3] = 0x6c;
TX[4] = 0x6f;
while (1) {
SPI_Begin();
sendData((uint8_t*)TX, 5);
SPI_End();
}
}
Das Problem könnte nur irgendwo sein, vor allem in dem Code, der hier nicht angezeigt wird. Sie müssen es debuggen. Untersuchen Sie Ihre Fehlerstatusregister und suchen Sie sie auf. –
Wenn ich die Zeiger von Buf in Standard-Arrays ändere, wird es nicht mehr im Hard-Fault-Handler enden – Arrrow