Forum: Mikrocontroller und Digitale Elektronik LPC1769 CDC mit Keil


von Daniel H. (dustbox)


Lesenswert?

Hallo,

wollte mir eine Virtuelle Com über USB machen ohne einen FTDI einsetzen 
zu müssen und habe mir die CDC Beispielfunktion von Keil unter 
Boards\Keil\MCB1700\RL\USB\Device\CDC umgeschrieben.

Senden geht ja mit der USBD_WriteEP funktion gans gut:
1
NumByte = sprintf(buffer,"Hallo Welt!!!\r\n");
2
  
3
while (1) {                          
4
      
5
  USBD_WriteEP ((U32)0x82,buffer, NumByte);
6
  delay_ms(500);
7
};

Nur verstehe ich nicht wie ich ein Interrupt für das Empfangen bekomme!?
Laut Anleitung gibt es die Funktion void USBD_EndPointN(U32 event), also 
habe ich in die usbd_LPC17xx.c datei folgende Funktion probiert:
1
void USBD_EndPoint2(U32 event) {
2
  
3
switch(event){
4
  case USBD_EVT_IN: 
5
  usb_rs232_obj.rx_num = USBD_ReadEP ((U32)0x02, usb_rs232_obj.buffer);
6
  usb_rs232_obj.rx_set = 1;
7
  break;
8
  }
9
}//void USBD_EndPoint2(U32 event)

Nur leider wird kein interrupt auf die Funktion ausgeführt.
Hat schonmal jemand eine Virtuelle Com mit Keil gemacht und kann mir 
weiterhelfen?

Hier mal noch meine einstellungen von der usb_config.c:
1
#define USBD_CDC_ENABLE             1
2
#define USBD_CDC_EP_INTIN           1
3
#define USBD_CDC_WMAXPACKETSIZE     16
4
#define USBD_CDC_BINTERVAL          2
5
#define USBD_CDC_HS_ENABLE          0
6
#define USBD_CDC_HS_WMAXPACKETSIZE  16
7
#define USBD_CDC_HS_BINTERVAL       2
8
#define USBD_CDC_EP_BULKIN          2
9
#define USBD_CDC_EP_BULKOUT         2
10
#define USBD_CDC_WMAXPACKETSIZE1    512
11
#define USBD_CDC_HS_ENABLE1         0
12
#define USBD_CDC_HS_WMAXPACKETSIZE1 64
13
#define USBD_CDC_HS_BINTERVAL1      0
14
#define USBD_CDC_CIF_STRDESC        L"USB_CDC"
15
#define USBD_CDC_DIF_STRDESC        L"USB_CDC1"
16
#define USBD_CDC_BUFSIZE            64
17
#define USBD_CDC_OUTBUFSIZE         128

Grüße,
Daniel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.