觉得是一个很简单的事,可是在串口调试助手下却无法显示的到,不知道是什么原因呢: #include <stdio.h> #include <macros.h> #include "iom128v.h" #include "pgmspace.h"
void Usart0_init(void) //7.3728Mhz频率,设置波特率9.6k,8位数据位,无校验,接收发送使能,1位停止位 { UBRR0H=0; UBRR0L=47; UCSR0B=(1<<RXEN0)|(1<<TXEN0); //发送接收使能,使用查询方式,故没有使能中断 UCSR0C=(1<<UCSZ00)|(1<<UCSZ01); //0x06 8位数据,1位停止位,无校验 }
void Usart0_transmit(unsigned char c) //查询方式发送接收字符函数 { while( !(UCSR0A&(1<<UDRE0)));//等待发送缓冲区为空 UDR0=c; }
unsigned char Usart0_receive(void) { while (!(UCSR0A&(1<<RXC0))) ; return UDR0; } int main(void) { unsigned int temp; Usart0_init();
Usart0_transmit('A'); //就是为了能发个A,为什么出不来 while(1) { Usart0_transmit( Usart0_receive()); for(temp=0;temp<3000;temp++) { }
|