最近在项目中有用到stm32f042的can接口,在调试过程中遇到了一些问题,现在回顾记录下调试过程,有需要的也可以做下参考。
配置事项:
1.查看硬件原理图PA9,PA10直接连接到收发转换芯片,但查看芯片规格书PA9,PA10引脚没有can信息介绍,查看小字注释才发现需要通过映射到can接口引脚PA11,PA12,代码端需要添加: RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
SYSCFG->CFGR1 |= SYSCFG_CFGR1_PA11_PA12_RMP;
2.注意can波特率参数设置,除了BS1、BS2、分频系数外还需要关注芯片CAN所在主线的时钟频率。
3.ID那些建议先都填写0,以免影响调试判断。
4.注意标准、扩展模式选择。
5.移植其他代码时需要注意库文件、命名差异。
测试验证事项:
先使用回环模式进行自检,发送数据查看能不能进接受中断函数。再进入正常模式测试,(注意上位机设置,波特率,ID号)。
出现问题时可以测量收发转换芯片供电是否正常,通过上位机发送信号,测试接收芯片是否有波形输出。先排除硬件故障。