完善资料让更多小伙伴认识你,还能领取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的号码有关系么? |
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
829 浏览 0 评论
1167 浏览 1 评论
2546 浏览 5 评论
2873 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2734 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1142浏览 3评论
203浏览 2评论
470浏览 2评论
384浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
465浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-3 04:00 , Processed in 1.406894 second(s), Total 89, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号