使用 系统时钟 (50MHz)
regaddr=0x40040000;
temp = HWREG(regaddr);
SysCtlDelay(5);
HWREG(regaddr) |= (0x41|temp); //置位CANCTL寄存器
SysCtlDelay(5);
HWREG(regaddr+0x0C) = (0x03<<12)|(0x04<<8)|(0x03<<6)|(0x39); //seg2=4,seg1=4,swj=4,BRP=57 CANBIT寄存器
SysCtlDelay(5);
HWREG(regaddr+0X18) = 0x03;//CANBRPE寄存器
SysCtlDelay(5);
HWREG(regaddr) = temp;
SysCtlDelay(5);
设置20K波特率没有问题 但改到10K波特率时
regaddr=0x40040000;
temp = HWREG(regaddr);
SysCtlDelay(5);
HWREG(regaddr) |= (0x41|temp); //置位CANCTL寄存器
SysCtlDelay(5);
HWREG(regaddr+0x0C) = (0x03<<12)|(0x04<<8)|(0x03<<6)|(0x30); //Tseg2=3,Tseg1=3,swj=3,BRP=48 CANBIT寄存器
SysCtlDelay(5);
HWREG(regaddr+0X18) = 0x09;//CANBRPE寄存器
SysCtlDelay(5);
HWREG(regaddr) = temp;
SysCtlDelay(5);
就不能够正常通信了,CAN总线报错。寄存器值使用HAL Code Generator软件获得