串口通信问题 求助-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3627|回复: 1

串口通信问题 求助

[复制链接]
发表于 2013-4-2 21:18 | 显示全部楼层 |阅读模式
在做串口通信的时候遇到问题 每次输入数字调节led亮度的时候只能点亮不能调节 代码如下
led与电阻相连 并接到9端口与GND
用pwm的教学实验没问题 但到下面这个串口通信就出现问题了
望大神相助

const int ledpin=9;

void setup() {
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
}

void loop() {
  int brightness;
  if(Serial.available())
  {
    brightness=Serial.read();
    Serial.println(brightness);
    analogWrite(ledpin,brightness);
  }
}

发表于 2013-4-2 22:44 | 显示全部楼层
[mw_shl_code=cpp,true]/*
OpenJumper Example
串口RGB LED调光
奈何col  2013.2.20
www.openjumper.com
*/

int i; //保存PWM需要输出的值
String inString = ""; // 输入的字符串
char LED = ' '; // 用于判断指定LED颜色对应的引脚
boolean stringComplete=false; // 用于判断数据是否读取完成

void setup() {
  //初始化串口
  Serial.begin(9600);
}
void loop() {
  if (stringComplete)
  {
    if (LED=='A'){
      analogWrite(9,i);
    }
    else if (LED=='B'){
      analogWrite(10,i);
    }
    else if (LED=='C'){
      analogWrite(11,i);
}
// 清空数据,为下一次读取做准备
    stringComplete = false;
    inString = "";
    LED = ' ';
  }
}

// 使用串口事件
// 读取并分离字母和数字
void serialEvent() {
  while (Serial.available()) {
    // 读取新的字符
    char inChar = Serial.read();
// 根据输入数据分类
// 如果是数字,则存储到变量inString中
// 如果是英文字符,则存储到变量LED中
// 如果是结束符“\n”,则结束读取,并将inString转换为int
    if (isDigit(inChar)) {
      inString += inChar;
    }
    else if (inChar == '\n') {
      stringComplete = true;
      i=inString.toInt();
    }
    else LED=inChar;
  }
}
[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 15:37 , Processed in 0.072163 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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