请选择 进入手机版 | 继续访问电脑版

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

当STM32CAN接收超时发出一个错误报文的功能实现问题

[复制链接]
mike_cow 提问时间:2021-12-21 14:20 / 未解决

在STM32的CAN收发通信中,当接收超时(即在限定的时间内仍然没有接收到数据),发出一个报文的功能,查询pending的返回值,为什么不能实现这个功能?超时没有接收也没能发出。

void USB_LP_CAN_RX0_IRQHandler1(void)

{

if((CAN_MessagePending(CAN1,CAN_FIFO0)==0) { Delay1(10000000); can_tx1(0X29,0X11,0X00,0X00,0X00,0X00,0X00,0X00); } }

收藏 评论2 发布时间:2021-12-21 14:20

举报

2个回答
废鱼 回答时间:2021-12-21 14:39:18

楼主,你好。为什么要在中断中加延时处理呢?这样会导致其他的中断不能正常工作。在外部判断超时处理,再发送数据。中断中,尽量减少延时、太繁琐的代码。中断要简洁明了。

butterflyspring 回答时间:2021-12-24 11:00:40
看起来这在CAN接收中断里,然后判断是否延时没收到信息,逻辑不通呀~~。 楼主再查查看
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版