Board logo

标题: 请教板主一个HCS128的SCI0与PC通讯的问题:急!急!急! [打印本页]

作者: renjie817    时间: 2007-4-7 21:54     标题: 请教板主一个HCS128的SCI0与PC通讯的问题:急!急!急!


请教一个HCS128的SCI0与PC通讯的问题: 在PC上用超级终端和串口调试软件上接收的数据都不对,为什么呢?
unsigned char chr;

void main(void) {
unsigned char string[]="ABCDEFGH";
int i;
SCI_Init();

for (;;){
for(i=0;i<8;i++)
{
chr=string;
SCI0Output_char (chr);
}
//EnableInterrupts;
}
}


void SCI_Init(void) {
SCI0CR2 = 0x0c; // enable T and R
SCI0BDH = 0x00;
SCI0BDL = 0x9c; // sci0 for 9600
}

void SCI0Input_char(unsigned char ch)
{
while(!(SCI0SR1&0x20))
{
}
ch=SCI0DRL;

}

void SCI0Output_char(unsigned char ch)
{
while(!(SCI0SR1&0x80))
{
}
SCI0DRL = ch;
}

作者: strongchen    时间: 2007-4-9 09:32

请参考这个帖子。你可以用PC的HyperTerminal进行调试。
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=117348&ID=117348
作者: strongchen    时间: 2007-4-9 09:35

链接好像改了:
http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=117348&ID=117348
作者: renjie817    时间: 2007-4-9 21:35

谢谢板主,我的问题解决了,是我在初始化时忘记了对时钟初始化,谢谢板主!
作者: upczhaokai    时间: 2007-7-7 08:07

怎么对时钟初始化???
作者: strongchen    时间: 2007-7-9 10:30

你可以参看前面帖子里给出的程序:
void Init_SCI(void)
{
//SCI0ÓëMonitorͨÐÅ
////SCI0BDL=6;
SCI0BDL=13;
SCI0BDH=0; //CLOCK=7.3728MHz, bps=38400
////SCI0CR1=0x16; //9 bit, żЧÑé
SCI0CR1=0x06; //8 bit, żЧÑé
SCI0CR2=0x2C; //ÖÐÖ¹·û²úÉúÆ÷¹Ø±Õ
SCI0CR2 |= 0x80; /*Enable TDRE interrupt*/
}





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0