请教大家一个问题,我想把串口收到的数据通过ECAN发送出去,部分程序如下://把接受寄存器的数据放到数组里面。
void getchar(uint c)
{
uint ch[8];
a=0;
for(a=0;a<8;a++)
ch[a]=c;
}
//串口1接收中断
void __attribute__((__interrupt__,no_auto_psv))_U1RXInterrupt(void)
{
IFS0bits.U1RXIF=0;
TRISC=0X03F9;
PORTC=0X03F9;
getchar(U1RXREG);
}
//主函数中等待中断的程序,只是写一下while(1)
while(1)
{
canTxMessage.buffer_status=CAN_BUF_EMPTY;
for(i=0;i<canTxMessage.data_length;i++)
{
canTxMessage.data=ch;
sendECAN(&canTxMessage);
}
}
以上是我的程序,将串口接收数据通过CAN发送出去,但是在调试的时候发现,程序根本不执行while(1)中的for循环,请大家帮我分析一下,谢谢了。 |