我被困了几天。我只是想在我的龙12板(MC9S12)上使用SCI1传输和接收数据。我已经成功地将数据传输到PC但是我似乎无法接收数据。
我的主板上的Rx从未亮起。我知道数据正在成功发送到电路板,因为我有一个usb /串线,当我向电路板发送数据时,它有一个闪烁的灯。
这是我的代码:
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显示出来。
答案 0 :(得分:0)
我最后通过使用SCI0来解决这个问题......完全相同的代码 - 不同的端口和结果。