完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
1,在发送程序中,将消息编号(MsgNum)写入IF1命令请求寄存器后,数据被发出,请问在接收程序中,如何通过消息编号相关的子函数,取出数据。
2,消息编号在CAN通信中都有哪些作用?是如何工作的?本人水平较低,希望各位可以提供相关代码参考。 我所学习的代码如下: CAN启动程序: void start_CAN(void) { SFPRAGE=CAN0_PAGE; CAN0CN丨=0x41; CAN0ADR=BITREG; CAN0DAT=0x49c2; CAN0CN丨=0x06; CAN0CN&=~0x41; } 发送程序: void transmit(char MsgNum) { uchar num; SFRPAGE=CAN0_PAGE; CAN0ADR=IF1CMDMSK; CAN0DAT=0x0087; CAN0ADR=IF1DATA1; for(num=0;num<8;num++) { CAN0DATH=sdata[num]; n++; CAN0DATL=sdata[num]; } CAN0ADR=IF1CMDRQST; CAN0DATL=MagNum; } 接收程序: void ISRname(void) interrupt 19 { temppage=SFRPAGE; SFRPAGE=CAN0_PAGE; status=CAN0STA; if((status&0x10)!=0) { CAN0STA&=0xef; receive_data(MsgNum); } SFRPAGE=temppage; } .............................................................. 请问:temppage=SFRPAGE;和SFRPAGE=temppage;这两句是做什么用的?receive_data(MsgNum);这个子函数该如何写? |
|
相关推荐
6个回答
|
|
|
|
|
|
|
|
|
1,对于MsgNum的概念还不是太理解,在发送程序中,将MsgNum写入命令请求寄存器后,数据被发送,请问MsgNum的号码,指的是本次发送数据目的地的消息RAM的号码,还是对此条数据进行一个号码的标记,以便接收方能通过此标记进行判断接收?
2,在看了一些资料之后,请问消息对象清0程序和消息对象初始化程序有什么用处?跟MsgNum的号码有关系么? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1022 浏览 1 评论
1852 浏览 0 评论
1833 浏览 1 评论
3258 浏览 5 评论
3585 浏览 9 评论
1025浏览 1评论
1852浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1364浏览 1评论
1855浏览 0评论
1180浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 14:16 , Processed in 1.005485 second(s), Total 86, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1486