你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2555|回复: 0

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

[复制链接]

1

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-12-10 11:39:25 | 显示全部楼层 |阅读模式
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模块接收数据帧的间隔最小究竟能设置为多小???
回复

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版