STM32 CAN 详细配置方法
1、 CAN 引脚不用初始 就可以工作
2、 BOUNDRATE 设置查看文件夹相关文件(这个文档不错 BAIDU : CAN 总线通讯速率设定)
3、 CAN 要配转换器
4、 CAN_InitStatus_TypeDef status = CAN_InitStatus_Failed;
5、
6、 /* Filter Parameters */
7、 CAN_FilterNumber_TypeDef CAN_FilterNumber; //CAN 过滤器组 1 2 3 4 5 //filter 0 1 2 3 4 5
8、 FunctionalState CAN_FilterActivation; //Filter 激活 //是否激活 CAN Filter
9、 CAN_FilterMode_TypeDef CAN_FilterMode; //过虑的方式 屏蔽位模式 与标识符模式 //标
识符过滤 MODE select
10、 CAN_FilterScale_TypeDef CAN_FilterScale; // 过 滤 器 组 位 宽 度 和 模 式 设 置 // CAN
filter scale
11、 u8 CAN_FilterID1;
12、 u8 CAN_FilterID2;
13、 u8 CAN_FilterID3;
14、 u8 CAN_FilterID4;
15、 u8 CAN_FilterIDMask1; //如果选择标识、屏蔽,MASK 为 0 不须比较
16、 u8 CAN_FilterIDMask2; //若全为标识 则都要比较
17、 u8 CAN_FilterIDMask3;
18、 u8 CAN_FilterIDMask4;
19、
20、 /* Init Parameters*/
21、 // MCR 设置
22、 CAN_MasterCtrl_TypeDef CAN_MasterCtrl; // CAN Time Triggered Communication mode
23、
24、 CAN_Mode_TypeDef CAN_Mode; // 设 置 运 行 模 式 CAN
Mode We can change Mode when here .
25、 CAN_SynJumpWidth_TypeDef CAN_SynJumpWidth; //同步跳跃宽度 1 2 3 4 CAN
26、 CAN_BitSeg1_TypeDef CAN_BitSeg1; //补偿不同节点的正向漂移
27、 CAN_BitSeg2_TypeDef CAN_BitSeg2; //补偿不同节点的负向漂移
28、 //尽量 大一点 且要是 SJW 的整数倍
29、 //100K 为 10 000ns
30、 CAN_ClockSource_TypeDef CAN_ClockSource; //选择类型,是外部还是内部
31、 u8 CAN_Prescaler; //分频
32、
33、 /* CAN register init */
34、 CAN_DeInit(); //寄存器初始化
35、
36、 /* CAN init */
37、 CAN_MasterCtrl=CAN_MasterCtrl_AllDisabled;
38、 //测试模式,使用静默环回模式
39、 // CAN Time Triggered Communication mode
40、 CAN_SynJumpWidth = CAN_SynJumpWidth_1TimeQuantum;
41、 CAN_BitSeg1 = CAN_BitSeg1_8TimeQuantum;
42、 CAN_BitSeg2 = CAN_BitSeg2_7TimeQuantum;
评论5