У меня есть следующий код в моем 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, но ничего. Почему не сработает одновременное использование двух сербов?