一、在Arduino下完成STM32板子的串口通信程序
1、Arduino的安装
下载地址: stm32arduino.
提取码:q251
解压后选择下图所示文件进行安装,注意安装路径不要出现英文。
2、配置Arduino IED
2.1、将解压文件中的Arduino_STM32整个文件夹拷贝到Arduino安装目录下的hareware文件中。
2.2、选择 工具 > 开发板 > 开发板管理器,打开如下界面选择 Arduino SAM Boards(32-bit ARM Cortex-M3) 进行安装。
网络不好的请使用离线方式安装:
1)下载链接: Arduino_SAM_Boards离线安装包.
2)解压至C:UsersAdministratorAppDataLocalArduino15stagingpackages路径文件夹下;
3)然后再次进入开发板管理器选择安装(即可跳过下载过程直接安装)。
2.3、安装完成后,在菜单栏>工具>开发板选择芯片类型,我使用的是stm32f103指南者,所以选择Generic STM32F103V series。
2.4、其他几个配置类型选择如下图(仅供参考):
3、连接stm32f103指南者开发板
3.1、直接用u***线把开发板的"u***转串口"这个接口与电脑相连即可。
注意:用跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,
TXD与A10相连。
4、烧录程序(stm32f103指南者)
以下代码完成的功能:
1)持续向串口输出“Hello world!”;
2)当接收到“stop”时,停止输出。
3) 小灯闪烁。
代码如下:
int flag=1;
char Stop[]="stopn";
void setup() {
//初始化
pinMode(PB0, OUTPUT);//PB0为绿色,PB1为蓝色,PB5为红色,可根据需要改动
Serial.begin(115200);
}
void loop() {
int i=0,flag_s=0;
char inByte[50];
digitalWrite(PB0, HIGH); //小灯亮
delay(500); // 延迟
digitalWrite(PB0, LOW); //小灯灭
delay(500); // 延迟
while (Serial.available()> 0) //当发送缓冲区有数据时
{
inByte
= Serial.read(); //从串口的缓冲区取出并读取一个Byte的数据
delay(10);
i++ ;
}
if(Stop=inByte)
{
if(Stop[i-1]==inByte[i-1]&&Stop[i-2]==inByte[i-2]&&Stop[i-3]==inByte[i-3])
{
flag=0;
Serial.println("收到!");
}//当收到stop命令时停止并回复收到
}
if(flag==1)
{
Serial.println("Hello World!");//向串口发送数据
delay(100); // 延迟
}
}
4.1、打开Arduino,点击左上角文件新建一个窗口,然后输入上述代码,选择对应串口。

4.2、因为前面配置已经完成了,所以这里直接点击验证,验证完成后,按一下开发板上的RESET按钮,再点击上传。


4.3、此时小灯开始闪烁,串口收到的信息点击串口监视器及可以看到,注意波特率要选择11520,否则会出现乱码,当发送stop时,停止输出。

一、在Arduino下完成STM32板子的串口通信程序
1、Arduino的安装
下载地址: stm32arduino.
提取码:q251
解压后选择下图所示文件进行安装,注意安装路径不要出现英文。
2、配置Arduino IED
2.1、将解压文件中的Arduino_STM32整个文件夹拷贝到Arduino安装目录下的hareware文件中。
2.2、选择 工具 > 开发板 > 开发板管理器,打开如下界面选择 Arduino SAM Boards(32-bit ARM Cortex-M3) 进行安装。
网络不好的请使用离线方式安装:
1)下载链接: Arduino_SAM_Boards离线安装包.
2)解压至C:UsersAdministratorAppDataLocalArduino15stagingpackages路径文件夹下;
3)然后再次进入开发板管理器选择安装(即可跳过下载过程直接安装)。
2.3、安装完成后,在菜单栏>工具>开发板选择芯片类型,我使用的是stm32f103指南者,所以选择Generic STM32F103V series。
2.4、其他几个配置类型选择如下图(仅供参考):
3、连接stm32f103指南者开发板
3.1、直接用u***线把开发板的"u***转串口"这个接口与电脑相连即可。
注意:用跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,
TXD与A10相连。
4、烧录程序(stm32f103指南者)
以下代码完成的功能:
1)持续向串口输出“Hello world!”;
2)当接收到“stop”时,停止输出。
3) 小灯闪烁。
代码如下:
int flag=1;
char Stop[]="stopn";
void setup() {
//初始化
pinMode(PB0, OUTPUT);//PB0为绿色,PB1为蓝色,PB5为红色,可根据需要改动
Serial.begin(115200);
}
void loop() {
int i=0,flag_s=0;
char inByte[50];
digitalWrite(PB0, HIGH); //小灯亮
delay(500); // 延迟
digitalWrite(PB0, LOW); //小灯灭
delay(500); // 延迟
while (Serial.available()> 0) //当发送缓冲区有数据时
{
inByte
= Serial.read(); //从串口的缓冲区取出并读取一个Byte的数据
delay(10);
i++ ;
}
if(Stop=inByte)
{
if(Stop[i-1]==inByte[i-1]&&Stop[i-2]==inByte[i-2]&&Stop[i-3]==inByte[i-3])
{
flag=0;
Serial.println("收到!");
}//当收到stop命令时停止并回复收到
}
if(flag==1)
{
Serial.println("Hello World!");//向串口发送数据
delay(100); // 延迟
}
}
4.1、打开Arduino,点击左上角文件新建一个窗口,然后输入上述代码,选择对应串口。

4.2、因为前面配置已经完成了,所以这里直接点击验证,验证完成后,按一下开发板上的RESET按钮,再点击上传。


4.3、此时小灯开始闪烁,串口收到的信息点击串口监视器及可以看到,注意波特率要选择11520,否则会出现乱码,当发送stop时,停止输出。

举报