嗨,您的變數RxData是Char怎去判別整數型別呢?
所以改為如下即可
int main()
{
TRISB = 0x0000;
TRISC = 0X0000;
TRISD = 0x0000;
UART_Init();
while(1)
{
if(RxData=='1')
{
PORTB = 0xCDFF;
PORTD = 0xFFFF;
PORTC = 0xFFFF;
}
else if(RxData=='2')
{
PORTB = 0xADFF;
PORTD = 0xFFFF;
PORTC = 0xFFFF;
}
else if(RxData=='3')
{
PORTB = 0xF5FF;
PORTD = 0xFFFF;
PORTC = 0xEFFF;
}
else if(RxData=='4')
{
PORTB = 0xF5FF;
PORTD = 0xEFFF;
PORTC = 0xFFFF;
}
else if(RxData=='5')
{
PORTB = 0xBBFF;
PORTD = 0xF7FF;
PORTC = 0xFFFF;
}
else if(RxData=='6')
{
PORTB = 0xBBFF;
PORTD = 0xFFFB;
PORTC = 0xFFFF;
}
else if(RxData=='7')
{
PORTB = 0xFBFF;
PORTD = 0xDFFF;
PORTC = 0xFFFE;
}
else if(RxData=='8')
{
PORTB = 0xFBFF;
PORTD = 0xDFFF;
PORTC = 0xFFFD;
}
}
}
另外您是用中斷觸發的方式,所以後面那題同樣的問題,While裡面不用再給RxData賦值,因為中斷內就賦值了
以上為解答