|
Atmega128을 이용해서 uart 통신 질문이 있습니다.
|
|
|
글쓴이 :
관리자
작성일 : 18-06-27 17:46
조회 : 3,445
|
안녕하세요? 고객님,
저희 뉴티씨를 이용하여 주셔서 감사합니다.
UART라고 자료실-->AVR에서 쳐서 검색하면, AVR Studio+WINAVR이라고 된 소스가 있을 겁니다.
거기서 차이를 봐 보세요.
초기화 부분에서 fdevopen(putch,0); 이런 부분이 있을 겁니다.
GCC에서는 그걸 해줘야 동작합니다.
감사합니다.
>
>
> #include<avr/io.h>
> void putch(unsigned char data)
> {
> while((UCSR0A & 0x20) == 0); //전송준비가 될 때까지 대기
> UDR0 = data;
> UCSR0A |= 0x20; /* UCSR0A 레지스터 중에서 5번째 비트(UDREn) 를 세트하여 UDRE0를 클리어 함. */
> }
>
> int main()
> {
> nsigned char text[]
>
> DDRE = 0xfe; // Rx(입력 0), Tx(출력, 1)
> UCSR0A = 0x00; /* 0번째 비트, 즉 MPCMn 를 0으로 세트 (USARTn을
>
> UCSR0B = 0x18; // Rx, Tx enable
>
> UCSR0C = 0x06; // 비동기 방식, No Parity bit, 1 Stop bit
>
> UBRR0H = 0x00;
> UBRR0L = 0x03; // 7.3728 MHz -> 115200 bps
>
> while(text[i] != '\0')
> putch(text[i++]);
> return 0;
> }
>
>
> 통신 모듈로는 Zigbee를, 기본 예제의 소스를 사용했습니다.
>
> 이 때 아트메가에서 PC로 Hello world가 전송이 되어야 하는데 전송되지 않습니다. 두 개의 PC에 Zigbee를 연결해서 하이퍼터미널로 송수신이 되는것은 확인했습니다.
>
> 보레이트도 전부 맞춰져 있습니다.
>
> 아트메가에서 왜 송신이 안되는지 잘 모르겠습니다.
>
|
|