[PIC®/AVR®/dsPIC®产品] 2f1是怎么计算出来的?

[复制链接]
881|18
 楼主| stly 发表于 2022-8-10 20:05 | 显示全部楼层 |阅读模式
本帖最后由 pzsh 于 2022-8-15 16:38 编辑

TXB0CON= 0x03;        //发送优先级为最高优先级,TXPR1=11
        TXB0SIDH= 0x5e;        //设置发送缓冲器0的标准标示符2f1,本程序采用标准标示符
        TXB0SIDL= 0x20;
上述代码中,2f1是怎么计算出来的?
 楼主| stly 发表于 2022-8-10 20:07 | 显示全部楼层
如果标准标示符是2f2,2f3或者其他的呢?
 楼主| stly 发表于 2022-8-10 20:09 | 显示全部楼层
TXB0SIDH,TXB0SIDL这连个寄存器该设置什么数值呢?
heweibig 发表于 2022-8-10 20:19 | 显示全部楼层
ID的10到3位在TXB0SIDH里,2到0位在TXB0SIDL。这样把2f1放进去就得到5e和20了。注意2到0位是在TXB0SIDL的高三位,所以是0x20.
llljh 发表于 2022-8-10 20:20 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
juventus9554 发表于 2022-8-10 20:22 | 显示全部楼层
对照寄存器定义去分析就懂了
 楼主| stly 发表于 2022-8-10 20:24 | 显示全部楼层
你好,这个标识符我弄明白了。主函数是TRID=0X00,当我在can初始化函数里面添加TRISD≡oxf0,后面写if((PORTD&0xf0)==0xe0 {TXB0SIDH=0x5e;TXB0SIDL=0x00}
else if....
.else...
这样的语句的时候,检测到的D端口,为什么是不停的变化的?在主函数里面写TRISD=0XF0,端口d的状态也是不断变化的
 楼主| stly 发表于 2022-8-10 20:26 | 显示全部楼层
找到原因了,没在函数里面写初始化程序
午夜粪车 发表于 2022-8-10 20:28 | 显示全部楼层
那要详细看看寄存器说明了
 楼主| stly 发表于 2022-8-10 20:39 | 显示全部楼层
不同编码之间的转换吧
 楼主| stly 发表于 2022-8-10 20:41 | 显示全部楼层
搞定了,呵呵,犯了低级错误……
carpsnow 发表于 2022-8-11 21:53 | 显示全部楼层
看手册,想目的
pzsh 发表于 2022-8-15 16:38 | 显示全部楼层
这个PIC18C 的型号没有碰到过, 碰到的都是PIC18 F
tpgf 发表于 2022-9-4 16:40 | 显示全部楼层
十六进制来计算的
qcliu 发表于 2022-9-4 19:43 | 显示全部楼层
换算成二进制对应看看
drer 发表于 2022-9-4 20:12 | 显示全部楼层
不是计算得到的 是配置得到的
coshi 发表于 2022-9-4 20:35 | 显示全部楼层
就是相应的位要置位 有的位要清零 最后就得到了这么一个数据
kxsi 发表于 2022-9-4 20:41 | 显示全部楼层
请问什么是标准标示符
wiba 发表于 2022-9-4 20:52 | 显示全部楼层
是不是自己随机定义的呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部