Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】108种传感器模块系列实验(59)---RS232转TTL串口模块

[复制链接]
 楼主| 发表于 2019-7-15 14:18 | 显示全部楼层
模块电原理图

09.jpg
 楼主| 发表于 2019-7-15 14:41 | 显示全部楼层
10.jpg
12.jpg
发表于 2019-7-15 15:01 | 显示全部楼层
感谢,很详细,学习了
 楼主| 发表于 2019-7-15 16:25 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】66种传感器模块系列实验(59)
实验五十九: RS232转TTL2代串口模块刷机板(MAX3232芯片)
程序之一,读取缓存中的串口数据
注意这里的接线方法,软串口RX接RS232转接板的RX口,
TX接RS232转接板的TX口
*/

#include <SoftwareSerial.h>
SoftwareSerial DLSerial(6, 7); // 软串口 RX(D6), TX(D7)
void setup() {
DLSerial.begin(9600); //设备波特率9600
}

void loop() {   
DLSerial.write(1); //发送字节数据
DLSerial.write(3);
delay(500);
while (DLSerial.available()>0) //如果缓存中有接收到的数据
{
    DLSerial.read(); //读取缓存中的串口数据
    delay(2);
}
delay(500);
}
[/mw_shl_code]
 楼主| 发表于 2019-7-15 16:26 | 显示全部楼层
Charger 发表于 2019-7-15 15:01
感谢,很详细,学习了

谢谢鼓励,捣鼓一天,差点坚持不下去,要放弃了
 楼主| 发表于 2019-7-15 16:29 | 显示全部楼层
14.jpg
 楼主| 发表于 2019-7-15 16:35 | 显示全部楼层
15.jpg
 楼主| 发表于 2019-7-15 17:03 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】66种传感器模块系列实验(59)
实验五十九: RS232转TTL2代串口模块刷机板(MAX3232芯片)
程序之二,接收串口数据
rx = 6
tx = 7
*/

#include <ctype.h>

#define bit9600Delay 100  
#define halfBit9600Delay 50
#define bit4800Delay 188
#define halfBit4800Delay 94

byte rx = 6;
byte tx = 7;
byte SWval;

void setup() {
  pinMode(rx,INPUT);
  pinMode(tx,OUTPUT);
  digitalWrite(tx,HIGH);
  delay(2);
  digitalWrite(13,HIGH);
  SWprint('o');  
  SWprint('k');
  SWprint(10);
}

void SWprint(int data)
{
  byte mask;

  digitalWrite(tx,LOW);
  delayMicroseconds(bit9600Delay);
  for (mask = 0x01; mask>0; mask <<= 1) {
    if (data & mask){
     digitalWrite(tx,HIGH);
    }
    else{
     digitalWrite(tx,LOW);
    }
    delayMicroseconds(bit9600Delay);
  }
  
  digitalWrite(tx, HIGH);
  delayMicroseconds(bit9600Delay);
}

int SWread()
{
  byte val = 0;
  while (digitalRead(rx));

  if (digitalRead(rx) == LOW) {
    delayMicroseconds(halfBit9600Delay);
    for (int offset = 0; offset < 8; offset++) {
     delayMicroseconds(bit9600Delay);
     val |= digitalRead(rx) << offset;
    }
   
    delayMicroseconds(bit9600Delay);
    delayMicroseconds(bit9600Delay);
    return val;
  }
}

void loop()
{
    SWval = SWread();
    SWprint(toupper(SWval));
}[/mw_shl_code]
 楼主| 发表于 2019-7-15 17:05 | 显示全部楼层
16.jpg
 楼主| 发表于 2019-7-15 17:37 | 显示全部楼层
17.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-12-8 23:33 , Processed in 0.074793 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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