最近更新于 2024-05-05 12:31
测试环境
STM32F103C8T6,STM32F103C6T6
Arduino IDE 2.1.1
Arduino_Core_STM32 2.6.0(https://blog.iyatt.com/?p=11184 )
这里程序下载我使用的 ST-Link 连接,然后用了一个 USB 转串口模块来测试 STM32 的串口。注意 STM32 的 RX 和 TX 要分别连接 USB 转串口模块的 TX 和 RX,你读我写,你写我读。
硬件串口
STM32F103C8T6 有 3 个硬件串口,STM32F103C6T6 只有 2 个硬件串口,没有 USART3
\begin{array}{|c|c|c|c|c|c|}
\hline
串口 & TX(发送) & RX(接收) & SCLK(时钟) & CTS(清除发送) & RTS(请求发送)\\
\hline
USART1 & PA9 & PA10 & PA8 & PA11 & PA12 \\
\hline
USART2 & PA2 & PA3 & PA4 & PA0 & PA1 \\
\hline
USART3 & PB10 & PB11 & PB12 & PB13 & PB14 \\
\hline
\end{array}
HardwareSerial serial1(PA10, PA9); // 串口1
HardwareSerial serial2(PA3, PA2); // 串口2
HardwareSerial serial3(PB11, PB10); // 串口3
void setup()
{
serial1.begin(115200);
serial2.begin(115200);
serial3.begin(115200);
}
void loop()
{
serial1.println("1 Hello World!");
serial2.println("2 Hello World!");
serial3.println("3 Hello World!");
delay(1000);
}
读写示例
HardwareSerial serial1(PA10, PA9);
void setup()
{
serial1.begin(115200);
}
void loop()
{
while (serial1.available()) // 缓冲区待读取的字节数
{
serial1.print((char)serial1.read()); // 将读到的内容返回给发送者
}
delay(200);
}
STM32 串口使用 – Arduino IDE