STM32F103C8T6 (Синяя таблетка) и Arduino nano последовательная связь - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть следующий код в моем Arduino nano:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);
void setup()
{
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Native USB only
  }
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
}

void loop() // run over and over
{
  mySerial.write("Software serial from Arduino Nano\n");
  delay(500);
}

Если я подключу D2 и D3 к своему TTL, я могу прочитать сообщение со скоростью 9600 бод, но если я подключу Tx- > Rx и Rx-> Tx на мой STM32F103C8T6 (Синяя таблетка) со следующим кодом:

#include "stm32f103c8t6.h"
#include "mbed.h"
#include "USBSerial.h"
#include "Crypto.h"

int main() {
    Serial pc(PA_2, PA_3);
    Serial nano(PA_9, PA_10);
while(1) 
    {
     //AES data here

     if(nano.readable()) 
        {
            printf("Nano is here!\n");
            char c[128];
            nano.gets(c, 4);
            printf("I got c line: %s \n", c);
        }
        else
        {
            printf("Nano is unreadable\n");
        }
        wait_ms(1000);
    }
}

На PA_2 PA_3 представляет собой USB TTL, который отправляет некоторые зашифрованные данные на один P C. PA_9 и PA10 подключены к Arduino Nano, и я получу sh для чтения данных из Nano на BluePill с этим UART, но я всегда получаю, что Nano недоступен для чтения. Попробуй поменять провода Tx-Rx, но ничего. Почему не сработает одновременное использование двух сербов?

1 Ответ

0 голосов
/ 26 февраля 2020

Попробуйте установить скорость передачи данных для Nano на Blue Pill - похоже, вы никогда не устанавливали ее в своем сценарии. Вам также может понадобиться включить Software Serial, как вы делаете это на вашем Nano-Blue Pill, может не иметь библиотеки, в которой он нуждается для общения.

Обратите внимание, я раньше не работал с Синей Таблеткой, поэтому я не уверен, насколько она похожа или отличается от Нано.

...