我已经被难住了好几天了。我只是尝试在我的Draw12板(MC9S12)上使用SCI1发送和接收数据。我已经成功地将数据传输到PC,但是我似乎无法接收数据。
我的电路板上的Rx指示灯从不亮。我知道数据正在成功地发送到电路板,因为我有一根usb/串行电缆,当我向电路板发送数据时,它有一个闪烁的小led。
下面是我的代码:
void main(void)
{
set24MHzClock();
initializeLCD();
clearDisplay();
SCI1BDH=0x00; //48MHz/2=24Mhz, 24Mhz/16= 1.5MHz, 1.5MHz/9600=156
SCI1BDL=156; //baud rate
SCI1CR1 = 0x00;
SCI1CR2 = 0x0C;
for( ; ; )
{
if(SCI1SR1 & 0x20) //never receives data
{
clearDisplay();
RXdata = SCI1DRL;
displayChar(RXdata);
cl = SCI1SR1;
displayCString("Rx");
}
SerWrite('0'); //this works
wait500ms();
}
}我试过很多不同的方法...所有的事情,从使这个中断驱动,分成不同的功能,等等。我也改变了控制寄存器,但仍然没有Rx led显示。
发布于 2011-05-27 14:12:08
我最终通过使用SCI0修复了这个问题...完全相同的代码-不同的端口和结果。
https://stackoverflow.com/questions/6115359
复制相似问题