tsaiwn 发表于 2015-4-7 23:56:49

【教程】如何取出从PC 的串口监视器送到Arduino的多个数值


常常有人问到要一次传许多个整数给 Arduino,
我来写一个简单函数给大家用:



// 首先弄个全局便量 Global Variable 存放答案:

long iAns; // 最多 12 个, 是 Global variable
// iAns 第 0 个故意不用, 浪费一个 :-)
///
// 用法:
///// int howMany = getNums( );
////// 如果 howMany 是 0 表示没 data
/// 函数如下
int getNums( ) {
   if( ! Serial.available( ) ) return 0;
   String gg = "";
   while(Serial.available( ) ) {
   gg += (char)Serial.read( );
   delay(2);
   }
   String tmps = "      ";
   int p, t, len;
   len = gg.length( );
   p = t = 0;
   for(int i=1; i < 13; ++i){
   t = gg.indexOf(",", p); // 找下一个 ","
   if(t < 0) t = len; // 没找到 ! 已经最后一个 !
   tmps = gg.substring(p, t);
   tmps.trim( ); // 去掉头尾空白
   iAns = tmps.toInt( );
   p = t + 1;
   if(t == len) return i;
   } // for(
   return 12; // 最多支援 12
} // getNums(
/////////
void setup( ) {
   Serial.begin(9600);
   //...
}
void loop( ) {
   int ans = getNums( );
   if(ans > 0) {
   Serial.print(iAns);
   for(int i=2; i <=ans; ++i)
      Serial.print(String(", ") + iAns);
   Serial.println("\r\n========");
   for(int i = 1; i <= ans; ++i) {
      Serial.println(String("") + i + ": " + iAns);
   }
   } // if(
}// loop(

///
/************
好啦, 你可以测试看看从 Serial Monitor 串口监视器
输入 123, 5566, 33888, 432, 55555, 999999
然后按 ENTER 或点 Send

******
如果要输入友小数点的 float 也可以呢 ?
很简单,
把前面 long iAns;
的 long 改为 float 即可
当然
for Loop 內那句
kk[ i ] = tmps.toInt( );
要改为
kk[ i ] = tmps.toFloat( );
这样就可以了 !
**************************************************/

好啦, 你可以测试看看从 Serial Monitor 串口监视器
输入 123, 5566, 33888, 432, 55555, 999999
然后按 ENTER 或点 Send

******
Q: 如果要输入友小数点的 float 也可以呢 ?
A:很简单,
   把前面 long iAns;
   的 long 改为 float 即可
当然
   for Loop 內那句
       kk[ i ] = tmps.toInt( );
要改为
       kk[ i ] = tmps.toFloat( );
这样就可以了 !

suoma 发表于 2015-4-8 10:44:06

谢谢分享学习一下

songboliu 发表于 2015-5-15 17:13:22

你好,我想问下怎么通过串口调试助手向stm32f411re单片机发数据,主要是它的设置程序怎么写啊,谢谢

tsaiwn 发表于 2015-5-16 00:52:09

songboliu 发表于 2015-5-15 17:13 static/image/common/back.gif
你好,我想问下怎么通过串口调试助手向stm32f411re单片机发数据,主要是它的设置程序怎么写啊,谢谢

沒用過通过串口调试助手向stm32f411re单片机发数据
Sorry :(
页: [1]
查看完整版本: 【教程】如何取出从PC 的串口监视器送到Arduino的多个数值