我写了一个简单的串口程序,主要功能是不断发送一个字母 串口助手不断输出00 以下是源程序 求大神指点 #include <iom128v.h> #include <macros.h> #define uchar unsigned char #define uint unsigned int //串口0初始化 void uart_init0(int baud_rate,long int fosc) { UCSR0A=0x00; //控制寄存器A清零 不倍速 UCSR0B=0x00; //控制寄存器B清零 UCSR0B|=(1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);//允许发送和接收,并允许接收中断 UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); /*8位数据、1 位停止、异步、无校验*/ UBRR0H = (fosc/16/(baud_rate+1))/256; UBRR0L = (fosc/16/(baud_rate+1))%256; /*波特率9600 */ } //串口0发送一个数据 void uart_transmit0(unsigned char i) { while (!(UCSR0A & (1<<UDRE0))); /* 等待发送缓冲器为空 */ UDR0 = i; /* 发送数据 */ } void delay_s(void) { uint i,j; for(i=0;i<1000;i++) { for(j=0;j<255;j++) ; } } void main() { DDRE|=(1<<PE1); //TX1引脚定义输出 uart_init0(9600,16000000); //设置波特率9600 晶振16MHz SEI(); /*全局中断允许 */ while(1) { delay_s(); uart_transmit0('a'); delay_s(); } } |
QQ截图20150127134136.png (18.78 KB, 下载次数: 178)
欢迎光临 独闷闷网 (http://dumenmen.com/) | Powered by Discuz! X3.2 |