Guten Tag,
Ich habe einen Atmega32 sowie ein USB-Serial TTL Converter.
Nun möchte ich Daten vom yC an den PC senden.
Dafür habe ich das USB-Serial-Kabel folgendermaßen verbunden:
- GND -> GND meiner Schaltung
- VCC -> Nichts
- CTS -> Nichts
- TXD -> PD1 vom yC
- RXD -> PD0 vom yC
- RTS -> Nichts
Am PC verwende ich HTerm um die gesendeten Daten sichtbar zu machen.
Leider kommt allerdings nichts an, Treiber sind korrekt, Code folgt:
1 | #define F_CPU 16000000UL
|
2 | #define UART_BAUDRATE 1200
|
3 | #define UART_SETTING ((F_CPU/16L/UART_BAUDRATE)-1)
|
4 | #include <avr/io.h>
|
5 | #include <util/delay.h>
|
6 |
|
7 | void USART_Init(unsigned int baud)
|
8 | {
|
9 | UBRRH = (unsigned char)(baud>>8);
|
10 | UBRRL = (unsigned char)baud;
|
11 | UCSRB = (1<<RXEN)|(1<<TXEN);
|
12 | UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
|
13 | }
|
14 | void USART_Transmit( unsigned char data )
|
15 | {
|
16 | while ( !( UCSRA & (1<<UDRE)) );
|
17 | UDR = data;
|
18 | }
|
19 | int main(void)
|
20 | {
|
21 | USART_Init(UART_SETTING);
|
22 |
|
23 | while(1)
|
24 | {
|
25 | USART_Transmit('x');
|
26 | _delay_ms(500);
|
27 | }
|
28 | }
|
Den Code habe ich größtenteils aus dem Atmega32 Datasheet...
Gruß