rsw1986 发表于 2012-4-17 19:58:02

mega2560串口数据错乱

我使用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脚

rsw1986 发表于 2012-4-17 19:59:02

串口0是通过mega2560板上的usb口接到电脑上看的

wing 发表于 2012-4-17 21:15:38

电平问题,用USB转TTL电平的串口模块应该就没问题.
如果好运气的话Serial1还没烧

rsw1986 发表于 2012-4-17 21:20:08

wing 发表于 2012-4-17 21:15 static/image/common/back.gif
电平问题,用USB转TTL电平的串口模块应该就没问题.
如果好运气的话Serial1还没烧

我现在在串口1的高电平是5v,但是连接电脑的串口上没有接电阻

wing 发表于 2012-4-17 21:43:25

其實我不太記得電腦串口的電平標準範圍了,如果有空的話您可以查下資料確認下.
不過印象中是10V左右才是RS232的典型值,
不過無論怎麼說都好,USB模塊應該是比穩妥的解決方法

rsw1986 发表于 2012-4-18 22:07:44

wing 发表于 2012-4-17 21:43 static/image/common/back.gif
其實我不太記得電腦串口的電平標準範圍了,如果有空的話您可以查下資料確認下.
不過印象中是10V左右才是RS2 ...

好的,谢谢

Damn_intuition 发表于 2012-5-23 01:19:52

建议把解决方案写一下。
因为可能会有其他的Geek会遇到这个问题。

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

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

BlackCat 发表于 2012-6-23 14:10:18

昨天看了郭天祥的教程其中有说道,电脑串口电平为-12v高电平 +12v低电平 好像

弘毅 发表于 2012-6-23 14:15:58

BlackCat 发表于 2012-6-23 14:10 static/image/common/back.gif
昨天看了郭天祥的教程其中有说道,电脑串口电平为-12v高电平 +12v低电平 好像

恩,用一个max232就好~~~

DFRobot 发表于 2012-6-28 11:23:35

电脑串口是RS232电平的,正负15左右,Arduino串口是TTL电平的,0-5V,不能直接接,需要接个usb转换器或MAX232转换器
页: [1]
查看完整版本: mega2560串口数据错乱