Мне нужно отправить определенные данные в FPGA с SPI, используя мой LPC1769. Однако я не совсем понимаю, как я должен подходить к этому. В настоящее время у меня есть этот код, который заканчивается обработчиком hardfault. Мне не разрешено использовать CMSIS, поэтому я должен сам определять реестры.SPI периферийный на 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;
}
и моя главная функция:
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();
}
}
проблема может быть в любом месте, особенно в коде, который здесь не показан. Вам нужно будет отладить его. Изучите свои регистры состояния неисправности и отследите их. –
Если я изменил указатели от buf на стандартные массивы, он больше не окажется в жестком обработчике ошибок – Arrrow