uniqueeefocus39 发表于 2012-12-10 11:39:25

STM32F107的CAN模块接收数据速率上限是多大?

uint32_t Receive_CAN_number;//接收到的数据帧数
void CAN1_RX0_IRQHandler(void)     //100ms  50ms不会丢数  20ms左右就开始丢数据了
{
{
   CAN_Receive(CAN1,CAN_FIFO0, &RxMessage);
   Receive_CAN_number++;
   printf("\n\rCAN1接收数据帧数%d",Receive_CAN_number);
}
 
void CAN1_RX0_IRQHandler(void)  //100ms  50ms  不会丢数  20ms左右就开始丢数据了
{
   while(CAN_MessagePending(CAN1,CAN_FIFO0)>=1) //接收前加了判断,还是依然掉数据
   {
         CAN_Receive(CAN1,CAN_FIFO0, &RxMessage);
         Receive_CAN_number++;
         printf("\n\rCAN1接收数据帧数%d",Receive_CAN_number);      
    }        
}
CAN通信波特率设置为1M.
小弟 做汽车电子的,现在需用到ST的CAN模块,电脑端用周立功的CAN接口卡发送数据,与ST开发板通信成功,但是在CAN数据帧间隔周期很短的情况下,会出现数据帧丢失,为了屏蔽我的其他程序错误,我在CAN接收中断里只做了数据帧接收,打印数据帧的数量,通过发送1000帧数据,测试每隔100ms,50ms 发送数据,不会丢失,串口能打印出帧数位1000帧,但是如果为10ms,则只能接收431帧数据,如果为20ms,则能结束849帧数据.
STM32的CAN模块接收数据帧的间隔最小究竟能设置为多小???
页: [1]
查看完整版本: STM32F107的CAN模块接收数据速率上限是多大?