我用华大EVB板做CAN通讯试验,用的例程是
can_rx_tx_irq
有一段代码不明白,如下:
static void App_CanInit(void)
{
stc_can_init_config_t stcCanInitCfg;
stc_can_filter_t stcFilter;
Sysctrl_SetPeripheralGate(SysctrlPeripheralCan, TRUE);
//<<CAN 波特率配置
stcCanInitCfg.stcCanBt.PRESC = 1-1;
stcCanInitCfg.stcCanBt.SEG_1 = 5-2;
stcCanInitCfg.stcCanBt.SEG_2 = 3-1;
stcCanInitCfg.stcCanBt.SJW = 3-1;
stcCanInitCfg.stcWarningLimit.CanErrorWarningLimitVal = 10;
stcCanInitCfg.stcWarningLimit.CanWarningLimitVal = 16-1;
stcCanInitCfg.enCanRxBufAll = CanRxNormal;
stcCanInitCfg.enCanRxBufMode = CanRxBufNotStored;
stcCanInitCfg.enCanSTBMode = CanSTBFifoMode;
CAN_Init(&stcCanInitCfg);
//<<CAN 滤波器配置
stcFilter.enAcfFormat = CanAllFrames;
stcFilter.enFilterSel = CanFilterSel1;
stcFilter.u32CODE = 0x00000352;
stcFilter.u32MASK = 0x1FFFFFFF;
CAN_FilterConfig(&stcFilter, TRUE);
//<<Can Irq Enable
CAN_IrqCmd(CanRxIrqEn, TRUE);
EnableNvic(CAN_IRQn, IrqLevel0, TRUE);
}
我有两个问题
1.例程里的波特率到底是多少?如何计算?
2.u32CODE=0x00000352是什么意思?谢谢!
|
@Cjy_JDxy :那是库,跟CAN协议关系不大。而且数据手册说的很简单。大神来指点一下
@eelux :用户手册没有CAN通讯的内容
用户手册和CAN协议有看过么?