Hi,
hab hier grad einen Fehler und ich komm einfach nicht auf die Lösung :-(
1 | #define DMA_BUF_ADR 0x2008000
|
2 |
|
3 | short *DataBuf = (short *)(DMA_BUF_ADR);
|
4 | short DataOut = 0;
|
5 |
|
6 | //usart interrupt routine
|
7 | void UART3_IRQHandler(void)
|
8 | {
|
9 | unsigned char data=0;
|
10 |
|
11 | intsrc = (LPC_UART3->IIR & 0x03CF);
|
12 | intsrc &= UART_IIR_INTID_MASK; /* Interrupt ID mask */
|
13 |
|
14 | //THRE
|
15 | if (intsrc == UART_IIR_INTID_THRE)
|
16 | {
|
17 | data = DataBuf[DataOut++];
|
18 |
|
19 | pUart->THR =data;
|
20 | if(DataOut == 300)
|
21 | {
|
22 | DataOut = 0;
|
23 | UART_IntConfig((LPC_UART_TypeDef *)pUart, UART_INTCFG_THRE, false); //disable THRE
|
24 |
|
25 |
|
26 | }
|
27 |
|
28 | }
|
29 | }
|
Das Problem ist, dass nichts gesendet wird über den UART. Zwar steht in
data der richtige Wert drinnen, aber es wird 0x00 gesendet.
Wenn ich jetzt statt
data = DataBuf[DataOut++];
einfach nur
data = 0xFF;
schreibe,dann wird auch oxFF ausgegeben....
Gruß
Seb