|
楼主 |
发表于 2015-10-31 18:48:53
|
显示全部楼层
void CAN_Configuration(void)
{
CAN_InitTypeDef CAN_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
CAN_DeInit(CAN1);
CAN_StructInit(&CAN_InitStructure);
CAN_InitStructure.CAN_TTCM = DISABLE; //关闭时间触发模式
CAN_InitStructure.CAN_ABOM = DISABLE; //关闭自动离线管理
CAN_InitStructure.CAN_AWUM = DISABLE; //关闭自动唤醒模式
CAN_InitStructure.CAN_NART = DISABLE; // 禁止报文自动重传
CAN_InitStructure.CAN_RFLM = DISABLE; //FIFO 溢出时报文覆盖源文件
CAN_InitStructure.CAN_TXFP = DISABLE; //报文发送优先级取决于ID号
CAN_InitStructure.CAN_Mode = CAN_Mode_Normal; //正常的工作模式
// 设置CAN 波特率 10 KBPS
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq;
CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq;
CAN_InitStructure.CAN_Prescaler = 600;
CAN_Init(CAN1,&CAN_InitStructure); //初始化CAN
CAN_FilterInitStructure.CAN_FilterNumber = 0; //屏蔽滤波
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask; //标识符屏蔽晃模式
CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit; //32位寄存器
CAN_FilterInitStructure.CAN_FilterIdHigh = 0; //过滤器标识符 高16位 读取拨码开关状态 本机地址
CAN_FilterInitStructure.CAN_FilterIdLow = 0; //过滤器标识符 低16位 广播地址
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0; //过滤器屏蔽标识符 高16位
CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0; //过滤器屏蔽标识符 低16位
CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_Filter_FIFO0; //过滤器 0 关联到 FIFO0
CAN_FilterInitStructure.CAN_FilterActivation = ENABLE;// //开启过滤器
CAN_FilterInit(&CAN_FilterInitStructure); //初始化过滤器
CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE); //开启接收中断使能位
} |
|