Hallo,
ich habe zwei Beispielprogramme aus dem Atmel Software Framework
ausprobiert welche die serielle Schnittstelle benutzen; bei keinem
funktioniert die Übertragungsrichtung PC -> SAM3X.
Die Daten kommen physikalisch am Board an, ich sehe es am blitzen der
Leds.
Die Settings sind default 115200,8,n,1.
Analog-to-Digital Converter (ADC/ADC12B) example for SAM.
main() {
configure_console();
...
...
set_adc_test_mode();
}
1 | /**
|
2 | * Configure UART console.
|
3 | */
|
4 | static void configure_console(void)
|
5 | {
|
6 | const usart_serial_options_t uart_serial_options = {
|
7 | .baudrate = CONF_UART_BAUDRATE,
|
8 | .paritytype = CONF_UART_PARITY
|
9 | };
|
10 |
|
11 | /* Configure console UART. */
|
12 | sysclk_enable_peripheral_clock(CONSOLE_UART_ID);
|
13 | stdio_serial_init(CONF_UART, &uart_serial_options);
|
14 | }
|
15 |
|
16 |
|
17 | static void set_adc_test_mode(void)
|
18 | {
|
19 | uint8_t uc_key;
|
20 | uint8_t uc_done = 0;
|
21 |
|
22 | while (!uc_done) {
|
23 | while (uart_read(CONSOLE_UART, &uc_key));
|
24 |
|
25 | switch (uc_key) {
|
26 | case '0':
|
27 | g_adc_test_mode.uc_trigger_mode = TRIGGER_MODE_SOFTWARE;
|
28 | break;
|
29 | ...
|
30 | ...
|
31 | ...
|
32 |
|
33 | }
|
Mich irritiert, daß der serielle Puffer vor dem Empfang nicht geflusht
wird. Braucht man das denn nicht?
Ich hab in dem anderen Beispiel eine Led zum debuggen hinter der Zeile
switch (uc_key) {
zum prüfen reingehängt und abgefragt ob diese Zeile überhaupt
entsprechend erreicht wird. Das Ergebnis war nicht eindeutig...
Das Ganze kann eigentlich nichs Großes sein, bin im Moment aber trotzdem
ratlos.