Forum: Mikrocontroller und Digitale Elektronik STM32F103 USB Lib von ST portieren


von ich (Gast)


Lesenswert?

Hallo,

ich versuche gerade, die USB Libs von ST so umzubiegen, dass sie auf 
einem Olimex Board laufen.

Gibt es irgendwio eine Liste, was in welchen Headerdateien zu ändern 
ist, um die LIBs auf dem eigenen STM32 zum laufen zu bekommen?


Die Sache mit dem

  #define USB_CONNECT                      GPIOC
  #define USB_CONNECT_PIN                  GPIO_Pin_14
  #define RCC_APB2Periph_GPIO_CONNECT      RCC_APB2Periph_GPIOC


hab ich schon gefunden.


Desweiteren bekomme ich in der hw_config.h immer die Fehlermeldung:


'USART_RX_DATA_SIZE' undeclared here (not in a function)

wo müsste die deklariert werden?

Ich arbeite mit Crossworks, das Beispiel aus dem wiki geht nicht

von Matthias K. (matthiask)


Lesenswert?

Meinst Du das Olimex STM32-P103?

Darauf habe ich die USB-Lib hier laufen.

Ich habe die hw_config.c wie folgt angepasst:
1
#define USB_DISC_H  GPIO_SetBits(GPIOC,GPIO_Pin_11)
2
#define USB_DISC_L  GPIO_ResetBits(GPIOC,GPIO_Pin_11)
3
4
#define USB_SELECT   USB_DISC_L    /* USB Aktiv */
5
#define USB_DESELECT USB_DISC_H    /* USB Inaktiv (USBDP liegt auf 3.3V */
6
7
/*******************************************************************************
8
* Function Name  : USB_Cable_Config
9
* Description    : Software Connection/Disconnection of USB Cable
10
* Input          : None.
11
* Return         : Status
12
*******************************************************************************/
13
void USB_Cable_Config (FunctionalState NewState) {
14
15
  if (NewState == ENABLE) {
16
    USB_SELECT;
17
    // GPIO_SetBits(USB_CONNECT, USB_CONNECT_PIN);
18
  } else {
19
    USB_DESELECT;
20
    //GPIO_ResetBits(USB_CONNECT, USB_CONNECT_PIN);
21
  }
22
}

Weiterhin erinnere ich mich an Probleme, wenn man dazu die aktuelle 
FW-Lib 3.4.0 benutzt, da dort die bool-Definition geändert wurde. Ich 
musste in der usb_pwr.h

#include <stdbool.h>

zusätzlich einbinden. Kann aber auch an meiner Umgebung (Atollic) 
gelegen haben.

von ich (Gast)


Lesenswert?

Hallo, danke für deine Hilfe.

Leider besteht der Fehler in der Zeile
1
uint8_t  USART_Rx_Buffer [USART_RX_DATA_SIZE];

immernoch. Fehlermeldung:

'USART_RX_DATA_SIZE' undeclared here (not in a function)


Ich arbeite mit Crossstudio. Board ist die kleine Version von deinem, 
ein H103. Sollte aber keinen Unterschied machen.

Ich habe alle Libs der STDLib und USBLib durchsucht, in keiner befindet 
sich eine Definition von 'USART_RX_DATA_SIZE'.

von Matthias K. (matthiask)


Lesenswert?

ich schrieb:
> uint8_t  USART_Rx_Buffer [USART_RX_DATA_SIZE];

Das hat nichts mit der USB FW Lib zu tun. Vermutlich eine Definition aus 
einer Demo mit STM EVA-Boards.

Zeig doch mal Deinen ganzen Code.

von Lutz (Gast)


Lesenswert?

Also Tante Goggle sagt dazu, daß in der Version V 3.2.1 in der  Datei 
hw_config.h folgendes steht:
#define USART_RX_DATA_SIZE   2048

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.