关于Arduino控制步进电机的问题。
现在我想通过串口发送数字n,Arduino板子接收后,即发送n个脉冲来控制步进电机的步数,主要问题是串口发送数据时它是以字符形式发送,比如n=123,串口发送的数据依次为1的ASCII码49、2的ASCII码50、1的ASCII码51,那么当串口发送一任意数据时,我该怎样将接收的ASCII码值转换为对应的数字?搜索就有啦:http://www.arduino.cn/thread-5351-2-1.html
简略总结该帖:
atoi()函数
String的toInt()方法。 seesea 发表于 2015-10-25 20:55
搜索就有啦:http://www.arduino.cn/thread-5351-2-1.html
简略总结该帖:
atoi()函数
关键是我通过串口发送的数字位数不确定,怎么编程序得到串口所发字符个数(数字位数),你所发帖子链接是针对一个三位数而言。 yzzsjc 发表于 2015-10-25 21:14
关键是我通过串口发送的数字位数不确定,怎么编程序得到串口所发字符个数(数字位数),你所发帖子链接是 ...
是一个一个发送的么?那就每次接收到的数字缓冲起来,最后发送一个结束符(一般是用\n来做为结束符),收到这个结束符后将缓冲的数据取出换算为数字使用。 seesea 发表于 2015-10-25 21:34
是一个一个发送的么?那就每次接收到的数字缓冲起来,最后发送一个结束符(一般是用\n来做为结束符),收 ...
比如我想要发的是整型数123(一百二十三),但串口是一位位以字符形式发送,依次发49,50,51。按你说的思路能不能写一个大概程序给我看看。 yzzsjc 发表于 2015-10-26 09:28
比如我想要发的是整型数123(一百二十三),但串口是一位位以字符形式发送,依次发49,50,51。按你说的 ...
你先写写看,动动手比较有印象啦。 可以试试 char( (‘1’-‘0’)*100+('2'-'0')*10+('3'-'0')) 在串口显示的应该是ASCII码为123的字符,应该是 ‘{’没试过,你可以试试
页:
[1]