1、用Ardunio IDE完成stm32f103指南者的串口通信。
安装Ardunio IDE
下载安装包
点击安装即可
配置Ardunio IDE
将打包文件中的Arduino_STM32整个文件夹拷贝到Arduino安装目录下的hareware下。
打开Arduino,点击菜单栏工具开发板…第一栏的开发板管理器,搜索ARM,安装
安装完成后,在菜单栏工具开发板选择芯片类型,由于我使用的是stm32f103指南者,所以选择Generic STM32F103V series。
连接开发板
用u***线把开发板与电脑相连
跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,TXD与A10相连
烧录程序
以下代码完成:
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); // 延迟
}
}

然后依次点击验证,烧录。(注意每一次烧录文件前一定要按开发板上的RESET按钮)

小灯开始闪烁,串口收到的信息点击串口监视器及可看到

设置该处波特率

2、基于标准库函数与基于HAL库函数的stm32编程方式的差异。
(1)标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。这应该是目前使用最多的ST库,几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
(2)HAL库是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。而且HAL库不光实现了寄存器的集成,还实现了一些特定功能的集成,也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成。
3、stduino IDE使用体会
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。stduino IDE本身就是基于Arduino IDE进行开发的,所以它具备了Arduino IDE的所有优点,简单易上手。
1、用Ardunio IDE完成stm32f103指南者的串口通信。
安装Ardunio IDE
下载安装包
点击安装即可
配置Ardunio IDE
将打包文件中的Arduino_STM32整个文件夹拷贝到Arduino安装目录下的hareware下。
打开Arduino,点击菜单栏工具开发板…第一栏的开发板管理器,搜索ARM,安装
安装完成后,在菜单栏工具开发板选择芯片类型,由于我使用的是stm32f103指南者,所以选择Generic STM32F103V series。
连接开发板
用u***线把开发板与电脑相连
跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,TXD与A10相连
烧录程序
以下代码完成:
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); // 延迟
}
}

然后依次点击验证,烧录。(注意每一次烧录文件前一定要按开发板上的RESET按钮)

小灯开始闪烁,串口收到的信息点击串口监视器及可看到

设置该处波特率

2、基于标准库函数与基于HAL库函数的stm32编程方式的差异。
(1)标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。这应该是目前使用最多的ST库,几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
(2)HAL库是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。而且HAL库不光实现了寄存器的集成,还实现了一些特定功能的集成,也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成。
3、stduino IDE使用体会
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。stduino IDE本身就是基于Arduino IDE进行开发的,所以它具备了Arduino IDE的所有优点,简单易上手。
举报