youngchul 发表于 2013-5-7 11:01:25

LCD1602能显示汉字吗

zhou__mi 发表于 2013-5-10 20:46:05

piaozhiling 发表于 2011-11-24 23:58 static/image/common/back.gif
用我的小车的上位机控制程序吧!不过的事先装上个vb6才能用的

好的。但是我下不了

tangceng 发表于 2013-5-30 11:43:09

程序很简洁哦

xuqin3 发表于 2013-6-22 16:55:12

没有usb转串口板,直接用arduino。。。。

竹空闻樱 发表于 2013-6-28 19:14:26

很好的帖子,学习了:)

wanji 发表于 2013-7-16 16:36:21

不错很好的方法,比用数组方便多了。

罹凝寒冰 发表于 2013-7-26 11:23:44

我要用上位机给arduino板子传四个字节的数据 也就是一个数组 有四个元素 怎么办?

chqiyi 发表于 2013-7-27 21:23:00

这个很好玩,虽说构件最简单
谢谢楼主的详细教程和代码

fish6823 发表于 2013-8-4 11:34:07

万马奔腾 发表于 2013-3-30 12:47 static/image/common/back.gif
//逐个显示不正确啊 ,每次显示的是第一个字符,求高手解决
String comdata = "";//comdata是一个字符串类 ...

Serial.println(comdata);
这句错了,所以每次都是传第一个字符.应该是:
Serial.println(comdata);

s1213 发表于 2013-8-20 14:27:45

本帖最后由 s1213 于 2013-8-20 14:37 编辑

如果要是采用arduino自带的SoftSerial 软件模拟的串口,输入多个字符出现乱码,或者每次显示的是第一个字符,求高手解决
经试验加入 mySerial.println(comdata.length());后输出为1 ,也就是说comdata只读到了一个字符。求解???

// send 0x01 , 0x02 ,0x03 then see the LED on P1

#include <TinyPinChange.h>
#include <SoftSerial.h>

#define RxD 2
#define TxD 3
#define cardread 4
#define led 13

SoftSerial mySerial(RxD, TxD);
uint8_t VirtualPortNb;
volatile byte swith = 0;
String comdata = "";

void setup()
{
TinyPinChange_Init();
mySerial.begin(9600);

VirtualPortNb=TinyPinChange_RegisterIsr(RxD, softSerialEvent);
TinyPinChange_EnablePin(RxD);

pinMode(1, OUTPUT); //LED on Model A for debugging
}

/* Function called in interruption in case of change on pins */
void softSerialEvent(void)
{
int inByte;
uint8_t PortChange;   
PortChange = TinyPinChange_GetPinEvent(VirtualPortNb);
if(PortChange & TinyPinChange_PinToMsk(RxD)) /* Check if we have received something */
{
    while (mySerial.available() > 0)
    {
      comdata += char(mySerial.read());
      delay(1000);
    }
    if (comdata.length() > 0)
    {
      mySerial.println(comdata.length());
      mySerial.print(comdata);
      if(comdata=="3C00B60D0A8D"||comdata=="560003A727D5")
      {swith=1;}
      comdata = "";
    }
   
}
}

void loop()
{
program(swith);
}

void program(byte seq)
{
switch(seq)
{

case 1:
    digitalWrite(led, HIGH);
    delay(100);            
    digitalWrite(led, LOW);
    delay(100);               
    break;

case 2:
    digitalWrite(led, HIGH);
    delay(500);               
    digitalWrite(led, LOW);
    delay(100);
    digitalWrite(led, HIGH);
    delay(100);
    digitalWrite(led, LOW);
    delay(100);   
    break;

case 3:
    digitalWrite(led, HIGH);
    delay(500);               
    digitalWrite(led, LOW);
    delay(100);
    digitalWrite(led, HIGH);
    delay(100);
    digitalWrite(led, LOW);
    delay(100);
    digitalWrite(led, HIGH);
    delay(100);
    digitalWrite(led, LOW);
    delay(100);
    break;

default:
    digitalWrite(led, HIGH);
    delay(2000);         
    digitalWrite(led, LOW);
    delay(2000);      
    break;
}
}

dukeforce 发表于 2013-8-20 14:57:14

学习了,谢谢:D

prophet000 发表于 2013-10-22 13:01:17

有没有人知道String最大定义的长度是多少呢
这个方法如果一次接收太多会不会溢出呀:lol

prophet000 发表于 2013-10-22 13:03:29

还有就是打印字符时无法接收吧:Q

wwlzq5 发表于 2013-10-23 17:38:59

Mark一下 Arduino串口接收字符串

王心诚 发表于 2013-11-26 23:14:34

万马奔腾 发表于 2013-3-30 12:47 static/image/common/back.gif
//逐个显示不正确啊 ,每次显示的是第一个字符,求高手解决
String comdata = "";//comdata是一个字符串类 ...

for (int i=0; i <L; i++)//逐个显示comdata,comdata。。。comdata
         {
          Serial.println(comdata);
          }

把Serial.println(comdata[0]);改为Serial.println(comdata[i]);
页: 1 2 3 [4] 5 6
查看完整版本: Arduino学习笔记A6 - Arduino串口接收字符串