CAN 接收数据异常 | 知道原因了
我们使用 STC32G128 CAN通讯;发现 CAN发射正常,接收数据异常;
用示波器测量CAN接收波形正常;;CAN分析仪发射与接收都正常;;
在单片机中断也正常;就是数据不正确 void CanReadMsg(void)
{
u8 i;
CANSEL = 0;
do{
for(i = 0; i < 13 ;i++)
{
RX_DataBuffer = READ_CAN((u8)(RX_BUF0 + (i&3)));
UART1_Tx_BUFF = RX_DataBuffer;
}
Uart1_Send_Data(13);
}while(READ_CAN(SR) & 0x80);
}
void CAN1_Interrupt(void) interrupt CAN1_VECTOR
{
u8 isr;
isr = READ_CAN(ISR);
if((isr & 0x04) == 0x04)//发送
{
CANAR = ISR;
CANDR = 0x04; //CLR FLAG
}
if((isr & 0x08) == 0x08)//接收
{
CANAR = ISR;
CANDR = 0x08; //CLR FLAG
CanReadMsg( );
}
if((isr & 0x40) == 0x40)//ALI
{
CANAR = ISR;
CANDR = 0x40; //CLR FLAG
}
} CAN控制器有多种模式
有没有仅回环 什么地方设置??? 先用屠龙刀三例程包或者32G实验箱例程包里面的CAN总线收发例子测试
根据需要修改CAN接口通道,其它先不要修改,功能验证正常后再进行修改/移植。
实验箱例程包下载页面:https://www.stcai.com/syx
屠龙刀三例程包下载页面:https://www.stcai.com/hxgnsyb 知道什么原因了;; 读取BUF不 够; 16 与12;
页:
[1]