找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1866|回复: 3
打印 上一主题 下一主题
收起左侧

上位机labview发送十进制数给单片机的问题,帮帮忙

[复制链接]
跳转到指定楼层
楼主
ID:262004 发表于 2017-12-15 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先labview和51单片机的接受和发送都没问题,储存数据input[]=SBUF。我想把input[]中的数据变成十进制然后通过单片机控制步进电机的步数。
下面代码是我把input[]中数据转化为十进制数的代码,但是inputdata的结果总不对,数值特别大,电机一直会转。
uchar input[];
int a0,b0,c0,inputdata;
a0=input[0]-'0';
b0=input[1]-'0';
c0=input[2]-'0';               
inputdata=a0*100+b0*10 +c0;
请问我这个方法是不是不对?我还把另外赋值input[0]=‘1’,input[1]=‘0’,input[2]=‘0‘结果也不对。奇怪啊,,,字符减字符不应该是ascii码的差赋给了a0,
b0.c0.吗?
到底怎么把intput[]储存的数据转换为十进制数,搞了几天也不知道问题在哪,,

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:262004 发表于 2017-12-15 16:12 | 只看该作者
是不是我input[]的类型定义错了?
回复

使用道具 举报

板凳
ID:262112 发表于 2017-12-15 16:55 | 只看该作者
是不是断句不对?
回复

使用道具 举报

地板
ID:213173 发表于 2017-12-15 17:42 | 只看该作者
有必要这么费事吗?16进制本来就是10或2进制的简短表达,把大数值16进制数按2位分段发送,接收后用左移或右移恢复原样就行。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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