|
Atmega128을 이용해서 uart 통신 질문이 있습니다.
|
|
|
글쓴이 :
반정현
작성일 : 18-06-27 17:19
조회 : 3,349
|
#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를 연결해서 하이퍼터미널로 송수신이 되는것은 확인했습니다.
보레이트도 전부 맞춰져 있습니다.
아트메가에서 왜 송신이 안되는지 잘 모르겠습니다.
|
|