极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17901|回复: 9

mega2560串口数据错乱

[复制链接]
发表于 2012-4-17 19:58:02 | 显示全部楼层 |阅读模式
我使用mega2560的串口0和串口1进行编程,程序如下:
void setup() {
  Serial1.begin(9600);
  Serial.begin(9600);
}

void loop() {
  int inByte=10;
    Serial1.print(inByte);
    Serial.print(inByte);
delay(1000);
结果串口0给的值是对的,串口1输出值不对。串口1是直接接到电脑的串口上的,板子里的地线接了串口的5脚
回复

使用道具 举报

 楼主| 发表于 2012-4-17 19:59:02 | 显示全部楼层
串口0是通过mega2560板上的usb口接到电脑上看的
回复 支持 反对

使用道具 举报

发表于 2012-4-17 21:15:38 | 显示全部楼层
电平问题,用USB转TTL电平的串口模块应该就没问题.
如果好运气的话Serial1还没烧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-4-17 21:20:08 | 显示全部楼层
wing 发表于 2012-4-17 21:15
电平问题,用USB转TTL电平的串口模块应该就没问题.
如果好运气的话Serial1还没烧

我现在在串口1的高电平是5v,但是连接电脑的串口上没有接电阻
回复 支持 反对

使用道具 举报

发表于 2012-4-17 21:43:25 | 显示全部楼层
其實我不太記得電腦串口的電平標準範圍了,如果有空的話您可以查下資料確認下.
不過印象中是10V左右才是RS232的典型值,
不過無論怎麼說都好,USB模塊應該是比穩妥的解決方法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-4-18 22:07:44 | 显示全部楼层
wing 发表于 2012-4-17 21:43
其實我不太記得電腦串口的電平標準範圍了,如果有空的話您可以查下資料確認下.
不過印象中是10V左右才是RS2 ...

好的,谢谢
回复 支持 反对

使用道具 举报

发表于 2012-5-23 01:19:52 | 显示全部楼层
建议把解决方案写一下。
因为可能会有其他的Geek会遇到这个问题。

简单的讲一下应该是RS232 和 TTL的电气化协议的不同导致的。

ttl是采用的0-5v电压。RS232 是采用的+-15V电压。 因此这个请款应该在Serial1 -Serial3上增加 一个Max232 芯片进行转换。
回复 支持 反对

使用道具 举报

发表于 2012-6-23 14:10:18 | 显示全部楼层
昨天看了郭天祥的教程其中有说道,电脑串口电平为-12v高电平 +12v低电平 好像
回复 支持 反对

使用道具 举报

发表于 2012-6-23 14:15:58 | 显示全部楼层
BlackCat 发表于 2012-6-23 14:10
昨天看了郭天祥的教程其中有说道,电脑串口电平为-12v高电平 +12v低电平 好像

恩,用一个max232就好~~~
回复 支持 反对

使用道具 举报

发表于 2012-6-28 11:23:35 | 显示全部楼层
电脑串口是RS232电平的,正负15左右,Arduino串口是TTL电平的,0-5V,不能直接接,需要接个usb转换器或MAX232转换器
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-30 20:47 , Processed in 0.042554 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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