arduino 读取串口数值 ~
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arduino 读取串口数值 ~相关的知识,希望对你有一定的参考价值。
这个应该用什么指令怎么写?我知道对于有些人来说很简单,对于我们这样的菜鸟却很难 望高手指教
条件:串口不定时传入变化的数值 如: a=451 b=874 c=656 d=2245 aa=794
要求:
收到数值后 将对应的数值赋予对应变量A、B、C、D、AA中 如收到c=238 则变量C等于238
(拒绝复制粘贴,用心回答才给分 麻烦各位高手了)
1、首先设置LED灯引脚,定义变量存储串口数据,如图所示。
2、然后打开串行通信接口并设置通信波特率,将LED管脚模式初始化为输出模式,如图所示。
3、然后检查是否有数据,并且发出控制指令,如图所示。
4、然后读取串口数据,如图所示。
5、然后测试传输值是否等于K,如图所示。
6、最后测试传输值是否等于G,如图所示。
参考技术A1、设置LED灯引脚,定义变量存储串口数据。
2、开启串行通信接口并设置通信波特率,初始化LED灯引脚模式为OUTPUT模式。
3、检查是否有数据,并且发出控制指令。
4、读取串口数据。
5、判断,比较运算符,用于测试传输值是否等于K。
6、判断,比较运算符,用于测试传输值是否等于G。
注意事项:
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。
参考技术B 首先是串口的读入:基本的串口读入:
void setup()
Serial.begin(9600); //设置波特率为9600,一般是这个波特率
void loop()
if(Serial.available()>0)//如果串口有数据进入的话
char c=Serial.read();//每次读一个字符,是ASCII码的
然后就是相当于读入信息的处理了
比如说如果建一个字符串name,每读一次c若不是等号或空格就加进去,
当读到等号时就读完一个名字了,接下来一直读到空格的都是数据,
当读到空格后就完成一个循环,继续上面的循环这样追问
我是新手 能不能把读入信息处理那小块帮写下?我好学习修改 必将400分送于前辈,以表感谢!
追答分倒不用那么多,主要是这些东西还是自己研究才有收获,arduino已经自带了很多例子,你可以研究看看它的例子
追问就因为愚笨 自己书都买了3本了 这点小问题依然没有解决 所以才上网请教 这个分就给前辈你了 如果有空且愿意的话 帮我整下,还有200分送于前辈 分不在多少 知识是无价的
本回答被提问者采纳 参考技术C 很想回答你,但是不懂,,arduino 串口如何数据提取变量,请各位高手指点
遇到的问题是这样的:
条件:串口不定时传入变化的数值 如: a=451 b=874 c=656
要求:
收到数值后 将对应的数值赋予对应变量q、w、e中 如收到c=238 则变量q等于238
我是这样写的:没办法把传入的 a=451 b=874 c=656 赋予对应变量 q、w 、e 请各位前辈指教,需要什么样的指令才能完成以上功能
int comtemp; //串口传来的数据保存到了这个变量中
int q; //用于存储a=后面的数值变量
int w; //用于存储b=后面的数值变量
int e; //用于存储c=后面的数值变量
void setup() Serial.begin(9600); //设置波特率
void loop() if (Serial.available() > 0) //当串口有数据传来时执行
comtemp = Serial.read(); //把串口的数据存到变量comtemp中 comtemp=0; //清理变量 使数据最新
int q;
int w;
int e;
void setup()
Serial.begin(9600);
void loop()
int i;
while ((Serial.available() > 0)&&(i<3))
comtemp[i] = Serial.read();
i++;
i=0; 参考技术B 要用中断
用外部中断 在程序里加外部中断时的处理函数 在函数里把值改变了 参考技术C 要用中断
用外部中断 在程序里加外部中断时的处理函数 在函数里把值改变了追问
能不能再详细些?举例说明 如果有帮助 送分表示感激
追答atmega单片机有外部中断端端口 把串口的线都连上去 当检测到外部中断触发时在程序里用中断处理函数把值改了
以上是关于arduino 读取串口数值 ~的主要内容,如果未能解决你的问题,请参考以下文章