打印
[PIC®/AVR®/dsPIC®产品]

2f1是怎么计算出来的?

[复制链接]
618|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.

使用特权

评论回复
5
llljh| | 2022-8-10 20:20 | 只看该作者

使用特权

评论回复
6
juventus9554| | 2022-8-10 20:22 | 只看该作者
对照寄存器定义去分析就懂了

使用特权

评论回复
7
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的状态也是不断变化的

使用特权

评论回复
8
stly|  楼主 | 2022-8-10 20:26 | 只看该作者
找到原因了,没在函数里面写初始化程序

使用特权

评论回复
9
午夜粪车| | 2022-8-10 20:28 | 只看该作者
那要详细看看寄存器说明了

使用特权

评论回复
10
stly|  楼主 | 2022-8-10 20:39 | 只看该作者
不同编码之间的转换吧

使用特权

评论回复
11
stly|  楼主 | 2022-8-10 20:41 | 只看该作者
搞定了,呵呵,犯了低级错误……

使用特权

评论回复
12
carpsnow| | 2022-8-11 21:53 | 只看该作者
看手册,想目的

使用特权

评论回复
13
pzsh| | 2022-8-15 16:38 | 只看该作者
这个PIC18C 的型号没有碰到过, 碰到的都是PIC18 F

使用特权

评论回复
14
tpgf| | 2022-9-4 16:40 | 只看该作者
十六进制来计算的

使用特权

评论回复
15
qcliu| | 2022-9-4 19:43 | 只看该作者
换算成二进制对应看看

使用特权

评论回复
16
drer| | 2022-9-4 20:12 | 只看该作者
不是计算得到的 是配置得到的

使用特权

评论回复
17
coshi| | 2022-9-4 20:35 | 只看该作者
就是相应的位要置位 有的位要清零 最后就得到了这么一个数据

使用特权

评论回复
18
kxsi| | 2022-9-4 20:41 | 只看该作者
请问什么是标准标示符

使用特权

评论回复
19
wiba| | 2022-9-4 20:52 | 只看该作者
是不是自己随机定义的呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝