各位大侠,能不能看看下面的程序有什么错误,或需要改进的地方? 端口已经设置好了。编译环境是GCC ,

[复制链接]
查看11 | 回复1 | 2011-5-5 12:48:29 | 显示全部楼层 |阅读模式
//发送字符
void usart_send(uchar i)
{
while(!(UCSRA&(1<<UDRE)));
//采用查询方式发送
UDR=i;
}
//接收中断函数
SIGNAL(SIG_USART_RECV)
{
Recv_Flag=1;
temp=UDR;
}
//主函数
int main(void)
{
init_devices();
Delay_1ms(40);
Recv_Flag=1;
UCSRB|=0x80;
sei();
while(1)
{

if(Recv_Flag)

{

Recv_Flag=0;
usart_send(temp);


}
}
}
编译没错误,但是PC发送了没有接收,

回复

使用道具 举报

千问 | 2011-5-5 12:48:29 | 显示全部楼层
看样子用的AVR,你应该说一下芯片型号。不然不好回答的,这个是全部的程序吗,只看到一条UCSRB|=0x80设置串口的语句,光这个不够的,给你个参考。void intiuart(void){
DDRE= 0xFE;// RXD(PE0)输入,上拉有效, TXD(PE1)输出
PORTE = 0xFF;// // USART初始化 UCSRA = 0x00;
UCSRB = (1<<RXCIE)|(1<<TXEN)|(1<<RXEN) ;// 允许RXC中断,发送允许UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); // 8 Data, 1 Sto
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行