关于Arduino控制步进电机的问题。-Arduino中文社区 - Powered by Discuz! Archiver

yzzsjc 发表于 2015-10-25 09:29

关于Arduino控制步进电机的问题。

现在我想通过串口发送数字n,Arduino板子接收后,即发送n个脉冲来控制步进电机的步数,主要问题是串口发送数据时它是以字符形式发送,比如n=123,串口发送的数据依次为1的ASCII码49、2的ASCII码50、1的ASCII码51,那么当串口发送一任意数据时,我该怎样将接收的ASCII码值转换为对应的数字?

seesea 发表于 2015-10-25 20:55

搜索就有啦:http://www.arduino.cn/thread-5351-2-1.html
简略总结该帖:
atoi()函数
String的toInt()方法。

yzzsjc 发表于 2015-10-25 21:14

seesea 发表于 2015-10-25 20:55
搜索就有啦:http://www.arduino.cn/thread-5351-2-1.html
简略总结该帖:
atoi()函数


关键是我通过串口发送的数字位数不确定,怎么编程序得到串口所发字符个数(数字位数),你所发帖子链接是针对一个三位数而言。

seesea 发表于 2015-10-25 21:34

yzzsjc 发表于 2015-10-25 21:14
关键是我通过串口发送的数字位数不确定,怎么编程序得到串口所发字符个数(数字位数),你所发帖子链接是 ...

是一个一个发送的么?那就每次接收到的数字缓冲起来,最后发送一个结束符(一般是用\n来做为结束符),收到这个结束符后将缓冲的数据取出换算为数字使用。

yzzsjc 发表于 2015-10-26 09:28

seesea 发表于 2015-10-25 21:34
是一个一个发送的么?那就每次接收到的数字缓冲起来,最后发送一个结束符(一般是用\n来做为结束符),收 ...

比如我想要发的是整型数123(一百二十三),但串口是一位位以字符形式发送,依次发49,50,51。按你说的思路能不能写一个大概程序给我看看。

seesea 发表于 2015-10-26 21:46

yzzsjc 发表于 2015-10-26 09:28
比如我想要发的是整型数123(一百二十三),但串口是一位位以字符形式发送,依次发49,50,51。按你说的 ...

你先写写看,动动手比较有印象啦。

绯弹的亚里亚 发表于 2015-11-24 02:26

可以试试 char( (‘1’-‘0’)*100+('2'-'0')*10+('3'-'0'))   在串口显示的应该是ASCII码为123的字符,应该是 ‘{’没试过,你可以试试
页: [1]
查看完整版本: 关于Arduino控制步进电机的问题。