arduino 软串口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arduino 软串口相关的知识,希望对你有一定的参考价值。

参考技术A 我们的设备需要有两个串口,但是 avr 单片机就只有一个串口,所以我们用了一个软串口。

但是软件串口不支持 奇偶校验,但是硬串口支持。

我们的硬串口用于对接到网关,而软串口对接到传感器。

在对接水表的时候,水表需要偶检验,这么问题就来了,我们的软串口不支持偶校验。

我们计划这将串口进行对掉,硬件串口接到水表上,软件串口接到网关上,这么问题就解决了。

这样子安装设备会特别容易出错,格外小心就可以了。

STM32F103VET6基于Arduino开发框架下串口和软串口通讯示例

STM32F103VET6基于Arduino开发框架下串口和软串口通讯示例


✨本示例来源于STM32核心固件自带例程。

  • 📢对于STM32F103VET6芯片,Arduino开发环境下,默认串口是:PA10,PA9,对于不同系列的STM32默认串口引脚不一定是这个两个引脚上,这一点需要注意。

📝示例代码

/*
  Software serial multiple serial test

 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.

 The circuit:
 * RX is digital pin 10 (connect to TX of other device)
 * TX is digital pin 11 (connect to RX of other device)

 created back in the mists of time
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's example

 This example code is in the public domain.

 */
#include <SoftwareSerial.h>

SoftwareSerial mySerial(PC11, PC10); // RX, TX

void setup() 
  // Open serial communications and wait for port to open:
   Serial.begin(115200, SERIAL_8N1);//PA10,PA9
  while (!Serial) 
    ; // wait for serial port to connect. Needed for native USB port only
  


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");


void loop()  // run over and over
  if (mySerial.available()) 
    Serial.write(mySerial.read());
  
  if (Serial.available()) 
    mySerial.write(Serial.read());
  


以上是关于arduino 软串口的主要内容,如果未能解决你的问题,请参考以下文章

Arduino如何同时使用多个串口

attiny85软串口乱码

arduino怎么清空串口缓存

arduino 串口不工作

Arduino串口读取

STM32F103VET6基于Arduino开发框架下串口和软串口通讯示例