完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
tms570ls20206的can总线中,为什么设置了屏蔽寄存器,可是还是所有的CAN的ID都产生中断,且中断清不掉.关于验收滤波器这方面请赐教!谢谢!
|
|
相关推荐
4 个讨论
|
|
Hi Zhangjie,
请查收附件,这是一个使用ID MASK的例子。 请您先查看570的TRM,关于IFxMSK寄存器一节(16.15.19 IF1/IF2 Mask Registers (DCAN IF1MSK, DCAN IF2MSK))。 我们的MASK的工作方式是: 0: The corresponding bit in the identifier of the message object is notused for acceptance filtering (don’t care). 1: The corresponding bit in the identifier of the message object is usedfor acceptance filtering. 以11bit ID为例,如果您把ID为0x501的MsgObj的MASK设置成0x7FF,那么这个MsgObj只能接收0x501 ID的报文。 如果把MASK设置成0x7FE,也就是ID的最后一个bit不关心(don't care),那么0x500和0x501就都能接收进来了。 附件中的例子就是将MsgObj 4的MASK设置成0x7FE,那么本来ID是0x500的MsgObj4也可以接收0x501 ID的报文了。 关于清中断,请参考附件例程的方法。 正常情况下,进入中断后,通过IFxCMD寄存器的ClrIntPnd位来清楚中断标志。 |
|
|
|
|
|
testd27 发表于 2018-8-13 08:36 接收中断可以使用IFxCMD的CLRINTpnd清除了,谢谢!现在还有一个疑问,就是我是启动了发送中断,使用中断来发送CAN总线的多帧,现在发现发送中断无法清除,想知道发送中断如何清除,IFxCMD的CLRINTpnd位只是清除接收中断吧,谢谢 |
|
|
|
|
|
cz0519博睿康 发表于 2018-8-13 08:46 Hi Zhangjie, DCAN模块本身是不严格区分发送或接收中断的。只有IE0和IE1两个bit控制的DCANxINT0和DCANxINT1两个中断。 也就是常说的High和Low中断。 建议您用不同的中断ISR来响应发送或接收中断。 无论您用哪个中断ISR来响应发送中断,清除INTPND的方法都是使用IFxCMD的CLRINTpnd清除。 如果您使用同一个ISR来响应发送和接收中断,那么需要在ISR中稍加判断了。 还有就是,如果使用中断的方式来完成连续发送,您可能需要考虑总线繁忙(busy)问题。 另一种方法是使用时间片来完成发送,通过轮询TxRqst位来判断当前数据是否发送完成,进而进行后面的报文发送。 这样的做法更便于实现超时监控(Timeout monitor). |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
272 浏览 1 评论
1012 浏览 0 评论
612 浏览 1 评论
458 浏览 1 评论
650 浏览 2 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
243浏览 29评论
1210浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
349浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
324浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
180浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-24 11:49 , Processed in 0.859981 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191