OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4479|回复: 1

MEGA2560连接JY901模块的方法

[复制链接]

44

主题

62

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
382
金钱
382
注册时间
2013-8-31
在线时间
14 小时
发表于 2016-7-21 10:00:48 | 显示全部楼层 |阅读模式
MEGA2560连接JY901模块的方法

JY901模块厂家提供了丰富的例程,但是对于Arduino的硬件平台来说,厂家给出的应用只适用于只有一个串口的UNO R3或者promini等版本。因为模块是串口的,所以如果把唯一的一个串口的接收口用来接收JY901模块的数据的话,就不能再接收其他的模块的数据了。所以我想到了用MEGA2560这款具有多个串口的硬件平台。
MEGA2560具有多个串口,所以在串口初始化的时候需要注意用不同的函数去做,只需要在厂家提供的源程序上做一点小改动即可。
先说硬件的链接,如下图
TX1接到JY901模块的RXRX1接到JY901模块的TXTXRX要交叉相接,千万不能接错了。然后将电源接上,如果两个板子分开供电的话,一定要注意将GND接在一起。这里我就用MEGA2560的电源个模块供电了。模块提供了左右两个VCCGND,内部是联通的,所以任选一个接口接上即可。

然后是程序,在Setup中初始化两个串口。JY901模块的默认波特率是9600,所以这里函数的参数写9600,如果是JY-61模块,默认波特率是115200,就需要改成115200,否则出不来数据。
void setup()
{
Serial.begin(9600);  
Serial1.begin(9600);
}
Loop函数里面,做解析数据的打印输出以及串口数据的接收。
void loop()
{
  //printreceived data. Data was received in serialEvent;
   Serial.print("Angle:");Serial.print((float)JY901.stcAngle.Angle[0]/32768*180);Serial.print("");Serial.print((float)JY901.stcAngle.Angle[1]/32768*180);Serial.print("");Serial.println((float)JY901.stcAngle.Angle[2]/32768*180);
  
Serial.println("");
  delay(500);
  while(Serial1.available())
  {
   JY901.CopeSerialData(Serial1.read()); //Call JY901 data cope function
  }
}
loop的末尾,加入串口数据的解析,如果串口有数据,就调用serial1.read函数去取出一个串口数据,然后调用JY901.CopeSerialData这个函数去解析,这个函数是厂家提供的库文件里面有的。
这样,Mega2560接收模块的程序就做好了。需要注意的是,写程序之前,需要先按照厂家提供的方法,将JY901模块的库文件导入到arduino的库中。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2019-9-15
在线时间
15 小时
发表于 2019-9-24 17:31:34 | 显示全部楼层
请问有没有完整的程序呢?谢谢啦
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 16:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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