can传输数据的问题 点击:610 | 回复:4



hgdyulei

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 3回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2012年5月09日
发表于:2013-01-18 09:12:12
楼主

我用传感器采集数据,通过A/D转换后用CAN发送处理后的数据我采集到的数据转换后是一个0.00到999的数据范围,我提取出来各个位的数值,用一个字符数组来传递,还是看程序吧,有点说不清楚的感觉
one=(int)(d*100);  

b=one/100;  

s=(one-100*b)/10; 

g=one%10;

其中的d为我采集到的数小于10的时候,我采用上述提取方式来提取数据,用如下数组来传递
shuju【0】=i;shuju【1】=0;shuju【2】=0;shuju【3】=b;shuju【4】=s;shuju【5】=g;
shuju【6】=0;shuju【7】=0;
shuju【】为char类型的

问题是我读到的乱码,不是我要的值。
如果用shuju【3】=‘b’;  这种方式来赋值的话读到的为b,而不是b所代表的数字。


我把数组定义成int shuju【8】形式的时候又读不到数据,在read里面不执行,好像是错误的。请大家帮忙看看,传输数据的方法是咋样的?

我需要吧采集到的值传输过来后通过数码管显示出来。谢谢!




研讨会宣传员_3259

  • [版主]
  • 精华:3帖
  • 求助:110帖
  • 帖子:1927帖 | 14403回
  • 年度积分:102
  • 历史总积分:64749
  • 注册:2020年3月27日
发表于:2013-01-18 13:42:30
1楼

你试试把收到的char值先转换成int值在进行计算。是不是这里出了问题?

lrzhou

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2003年11月29日
发表于:2013-01-20 14:45:24
2楼
试试这样:shuju【3】= b + 48;

artgood

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 128回
  • 年度积分:0
  • 历史总积分:714
  • 注册:2012年5月25日
发表于:2013-01-23 14:14:19
3楼

对技术看不懂,支持下

通讯网-原创军团

  • 精华:11帖
  • 求助:1帖
  • 帖子:432帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2013-01-31 17:49:33
4楼
为什么这么乱呢??你直接读A/D转换值不行么??你是先变成ASCII码么??。。你先不要这样。。。CAN的头两个字节是identifiers,标识码,。。。你第三个开始都写01,01,01.。。看看收到的是什么?

热门招聘
相关主题

官方公众号

智造工程师