这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 综合技术» 基础知识» pc 来问个郁闷的东西,pc串口通信的

共2条 1/1 1 跳转至

pc 来问个郁闷的东西,pc串口通信的

院士
2006-09-17 18:14:16 打赏
pc 来问个郁闷的东西,pc串口通信的



关键词: 问个 郁闷 东西 串口 通信

院士
2006-12-22 22:43:00 打赏
2楼
问 #include < AVR/io.h>
#include < AVR/interrupt.h>
#include < AVR/signal.h>

unsigned char *TXBUF;
unsigned char *RXBUF;
int TXCOUNT=-1;
int RXCOUNT=-1;

SIGNAL(SIG_UART_DATA)
{
if(TXCOUNT-1)
{
TXCOUNT--;
TXBUF++;
outp(*TXBUF,UDR);
}
else
UCSRB&=~_BV(UDRIE);
}

SIGNAL(SIG_UART_RECV)
{
unsigned temp;
temp=inp(UDR);
}

SIGNAL(SIG_UART_TRANS)
{
/*if(TXCOUNT-1)
{
TXCOUNT--;
TXBUF++;
outp(*TXBUF,UDR);
}
else
{*/
TXCOUNT=9;
TXBUF="good day!";
UCSRB|=_BV(UDRIE);
outp(*TXBUF,UDR);
//}
}

void UART_INIT(void)
{

UBRRL=51;
UCSRB=_BV(TXEN)|_BV(RXEN)|_BV(RXCIE)|_BV(TXCIE)|_BV(UDRIE);
UCSRC=_BV(UCSZ1)|_BV(UCSZ0)|_BV(URSEL)|_BV( USBS);
}


int main(void)
{
UART_INIT();
TXBUF="good day!";
TXCOUNT=9;
outp(*TXBUF,UDR);
sei();
for(;;)
{
asm("nop");
}
}

结果就是什么也就收不到
8M的晶振,max232做转换,设成9600bps结果接收到的只是00
如果用低一点的波特率就能就接受到一几个1了
如果不用SIG_UART_DATA中断也是一样,不过在9600bps能接收到几个1了
郁闷,弄很久了
win AVR的20040404版本编的
帮忙看看 1: 没有人理我

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]