oscertom 發表於 2016-1-19 18:32:40

mega2560 藍芽接腳問題

我想用藍芽傳輸字串到板子
接腳R/T 用10/11都沒問題
可是換到0/1 16/17 18/19... 其他任何腳位都不能用

#include <SoftwareSerial.h>
#define MAX_SIZE 128
SoftwareSerial BTSerial(10,11); // Arduino RX/TX

byte cmd;
int len = 0;

void setup() {
    Serial.begin(115200);
    BTSerial.begin(115200);
}

void loop() {

    char str;
    int insize, ii;
    int tick=0;

    while ( tick<MAX_SIZE ) {

      if ( (insize=(BTSerial.available()))>0 ){

            for ( ii=0; ii<insize; ii++ ){
                cmd[(len++)%MAX_SIZE]=char(BTSerial.read());
            }

      } else {tick++;}
    }

    if ( len ) {
      sprintf(str,"%s",cmd);
      Serial.println(str);
      cmd = '\0';
    }
    len = 0;
}


請問是我哪裡有問題嗎?

超新手 發表於 2016-1-19 19:40:37

如果用 mega,RX 只支援以下接腳
10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).

oscertom 發表於 2016-1-20 07:01:13

已解決~謝謝!不過0/1,14~19好像都不行,因為它上面有標RX/TX所以我都有試過

超新手 發表於 2016-1-20 08:12:13

本帖最後由 超新手 於 2016-1-20 08:13 編輯

0/1 14~19 是硬體 UART, 不必使用SoftwareSerial
SoftwareSerial 是使用I/O, 用軟體去模擬 UART

0/1 要使用Serial(你的程式已用它來 debug)
14/15要使用 Serial3
16/17要使用 Serial2
18/19要使用 Serial1
其實直接用 MEGA 的 硬體 UART, 速度會快一點

oscertom 發表於 2016-1-20 10:12:30

本帖最後由 oscertom 於 2016-1-20 10:48 編輯

感謝你又解決我另一個問題了!因為之前用energia都用Serial1,後來換成mega用一樣的程式碼插在0/1,所以一直沒辦法用,
現在終於知道為什麼了
頁: [1]
查看完整版本: mega2560 藍芽接腳問題