芯片是stm32f105rb,我在调试can的时候用125kb/s的时候can1和can能正常通信,但是将波特率设置为10kb/s后第一次能正常通信,第二次则开始不能发送,用其他can设备测试,接收正常。
can时钟为36M。
125kbps时波特率设置部分:
- CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
- CAN_InitStructure.CAN_BS1 = CAN_BS1_2tq;
- CAN_InitStructure.CAN_BS2 = CAN_BS2_1tq;
- CAN_InitStructure.CAN_Prescaler = 72;
复制代码10kbps时波特率设置部分代码:
- CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
- CAN_InitStructure.CAN_BS1 = CAN_BS1_6tq;
- CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq;
- CAN_InitStructure.CAN_Prescaler = 400;
复制代码了解的帮助解决一下。
一周热门 更多>