Hallo Leute!
Ich habe folgendes Problem bei KeilUV4:
Dieses Programm funktioniert anfangs, jedoch nach ein paar mal
übertragen hört das Programm auf zu übertragen. Diese Unterbrechung ist
immer nach einer unterschiedlichen Zeit. Ich habe das Programm debugged
und habe mir das Programm zum Zeitpunkt des Unterbrechens angesehen. Es
führt alles ganz normal aus, die Daten werden laut Debugger übertragen,
jedoch empfange ich nichts mehr. Ich sehe mir die empfangen Daten mit
dem Programm HTerm an.
Das komische ist, bei CooCox überträgt das Programm einwandfrei und
sendet kontinuierlich, bis ich es beende.
Demoprogramm:
1 | #include "stm32f4xx.h"
|
2 | #include "stm32f429i_discovery_lcd2.h"
|
3 | #include "stdio.h"
|
4 | #include "stm32f429i_discovery_ioe.h"
|
5 | #include "stm32f429i_discovery.h"
|
6 | #include "stm32f429i_discovery_sdram.h"
|
7 | #include "stdlib.h"
|
8 | #include "stm32_ub_led.h"
|
9 | #include "stm32_ub_usb_cdc.h"
|
10 | #include "system_stm32f4xx.c"
|
11 |
|
12 | // bei stm32_ub_usb_cdc.h wurde diese
|
13 | // variable gelöscht und hier neu deklariert
|
14 | // da sonst ein Fehler bei dem linken war
|
15 | USB_CDC_STATUS_t USB_CDC_STATUS;
|
16 |
|
17 |
|
18 |
|
19 | int main(void)
|
20 | {
|
21 | char rx_buf[APP_TX_BUF_SIZE] = {"12345"}; // Sendestring
|
22 |
|
23 | SystemInit(); // Quarz Einstellungen aktivieren
|
24 |
|
25 | // init der LEDs
|
26 | UB_Led_Init();
|
27 |
|
28 | // Init vom USB-OTG-Port als CDC-Device
|
29 | // (Virtueller-ComPort)
|
30 |
|
31 | UB_USB_CDC_Init();
|
32 |
|
33 |
|
34 | while(1)
|
35 | {
|
36 |
|
37 | // Test ob USB-Verbindung zum PC besteht
|
38 | if(UB_USB_CDC_GetStatus()==USB_CDC_CONNECTED)
|
39 | {
|
40 | UB_Led_On(LED_GREEN);
|
41 |
|
42 | UB_USB_CDC_SendString(rx_buf,LFCR);
|
43 |
|
44 | }
|
45 | else
|
46 | {
|
47 | UB_Led_Off(LED_GREEN);
|
48 | }
|
49 |
|
50 | }
|
51 | }
|
Vielen Dank im Voraus
MfG Coman