OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2956|回复: 3

stm32的can怎样才能发送u16数据?

[复制链接]

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2016-5-7
在线时间
41 小时
发表于 2016-6-2 20:38:52 | 显示全部楼层 |阅读模式
5金钱
我使用的原子的程序,,用CAN总线来传输ds18b20的温度值,,但是CAN只能传输u8的,,而ds18b20是u16 的。。。。该怎么改??谁做过这方面的呢?
QQ图片20160602203414.png

最佳答案

查看完整内容[请看2#楼]

谁说CAN只能传输U8数据,只不过它的传输数据单元是U8类型而已,文件也是以字节为单位存储的,难道就不能保存U16数据吗?U16就是两个U8,传输长度是2,对面收到两个U8拼到一起不就是U16吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

188

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2282
金钱
2282
注册时间
2013-12-16
在线时间
448 小时
发表于 2016-6-2 20:38:53 | 显示全部楼层
谁说CAN只能传输U8数据,只不过它的传输数据单元是U8类型而已,文件也是以字节为单位存储的,难道就不能保存U16数据吗?U16就是两个U8,传输长度是2,对面收到两个U8拼到一起不就是U16吗?
回复

使用道具 举报

21

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1132
金钱
1132
注册时间
2015-7-31
在线时间
155 小时
发表于 2016-6-3 08:15:33 | 显示全部楼层
楼上说的对啊,你把u16数据分开成俩u8,放到CAN里例如:u16为Cnt,可以建立两个u8 Cnt_L和Cnt_H, Cnt_L = Cnt;  Cnt_H = Cnt >>8;

然后将这两个u8发送出去,另外一段再合成u16不就好了么
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-6-3 09:15:06 | 显示全部楼层
本帖最后由 止天 于 2016-6-3 09:17 编辑

u16 data[10]


(u8 * )data  就可以发送8位数据了

接收到在(u16 *)转回来就可以了

都是指针最简单的应用,只要是发送接收两端的存储结构相同就没事了

can_send_buff ( (u8 * )data  , 20 );
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 18:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表