完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/*************************************************************/
/* 中断接收函数 */ /*************************************************************/ #pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt CAN_receive(void) { if(MSCAN0GetMsg(&msg_get)) { // 接收新信息 if(msg_get.id == ID1 && (!msg_get.RTR)) { datain=0X01; } if(msg_get.id == ID2 && (!msg_get.RTR)) { datain=0X02; } }else { for(;;); } } #pragma CODE_SEG DEFAULT 下面这个是接收数据。 void play_data(void) { unsigned char l; write_command(0x8A); for(l=0;l
write_Data(msg_get.data[l]); } 我上位机100mm发一次数据,连续发送多个ID,但是我的这个中断,每次只能接收到一个ID。以前没用到过CAN,请大神们帮忙指点一下。我用的是飞思卡尔MC9S12XEP100芯片。
|
|
相关推荐
20个回答
|
|
自己先顶一发!
|
|
|
|
连续接收ID,是不是不能用这种方法?是不是要存到某个地方,然后去读取呢?
|
|
|
|
读取ID,数据里再加个结束标志就可以了。(数据量不大的情况下)
|
|
|
|
如果数据量大的话,是不是不能用中断去接收了?要用别的什么方法? |
|
|
|
使用中断接收数据来不及处理完,在FIFO中可能会出现数据丢弃或者覆盖的现象。其他的还有什么样的方法呢?麻烦给指导一下。 |
|
|
|
我也正在找方法呢啊 |
|
|
|
我也正在找方法呢啊 |
|
|
|
我也在弄XEP100板子 楼主写过TLC吗?
|
|
|
|
|
|
|
|
你在FIFO中是如何处理的? |
|
|
|
读取ID,数据里再加个结束标志就可以了。(数据量不大)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
我将这个函数中FIFO释放部分程序屏蔽了,在我处理完成才释放的。 |
|
|
|
|
|
|
|
我觉得同时过来多个的话,依照优先级顺序,排最前的ID识别成功后,先触发中断;而且依照can总线协议,同一时间内抢占总线的原则,同一时间内有且仅有一个canID,排在后面的会等执行完以后再次触发中断 |
|
|
|
学习中,谢谢。
|
|
|
|
中断后读出来再处理
|
|
|
|
只有小组成员才能发言,加入小组>>
1688个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
35773 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
3974 浏览 0 评论
5500 浏览 1 评论
6360 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
3848 浏览 0 评论
319浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
280浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
306浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
369浏览 2评论
379浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 00:54 , Processed in 0.732402 second(s), Total 65, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号