一、用Ardunio IDE完成stm32f103指南者的串口通信

(1)安装Ardunio IDE

在网上下载Ardunio,默认安装就可以,安装路径不要有中文。

(2)配置Ardunio IDE

1.将打包文件中的Arduino_STM32整个文件夹拷贝到Arduino IDE安装目录下的hareware下。

2.打开Arduino,点击菜单栏\工具\开发板…\第一栏的开发板管理器

esp32 arduino串口中断_esp32 arduino串口中断

3.输入ARM,安装相关编译支持文件

esp32 arduino串口中断_开发板_02


4.在菜单栏\工具\开发板选择芯片类型,选择Generic STM32F103V series。

esp32 arduino串口中断_串口_03


5.Variant,Upload method,CPU Speed,Optimize相关选择如下图

esp32 arduino串口中断_串口_04


esp32 arduino串口中断_esp32 arduino串口中断_05


esp32 arduino串口中断_esp32 arduino串口中断_06


(3)连接stm32f103指南者开发板

1.用usb线把开发板与电脑相连,usb线连接开发板的“USB转串口”接口。用跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,TXD与A10相连

esp32 arduino串口中断_esp32 arduino串口中断_07


(4)烧录程序到开发板

1.在Ardunio IDE中输入以下代码

esp32 arduino串口中断_串口_08

int flag=1;   
char Stop[]="stop\n";
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[i] = Serial.read();    //从串口的缓冲区取出并读取一个Byte的数据
        delay(10); 
        i++ ;                              
}
if(Stop[i]=inByte[i])
{
  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); // 延迟
}
}

2.在“工具”中选择端口

esp32 arduino串口中断_标准库函数_09


3.依次点击“验证”和“上传”

4.烧录成功如图

esp32 arduino串口中断_标准库函数_10


5.打开“串口监视器”

esp32 arduino串口中断_串口_11


6.比特率调节为115200,效果如图

esp32 arduino串口中断_标准库函数_12


esp32 arduino串口中断_esp32 arduino串口中断_13


开发板的效果如图

esp32 arduino串口中断_esp32 arduino串口中断_14


二、基于标准库函数与基于HAL库函数的stm32编程方式的差异

关于标准库函数

由于stm32系列有着很多不同的芯片,其所使用的寄存器也大不相同,因此ST公司就为每款芯片都编写了一份库文件,其中包括启动文件、内核相关文件、驱动文件、和一些集成了重要功能的头文件。

关于HAL库函数
而HAL库作为一个推出比较晚的库,自然要与前辈有所不同。相比于标准库将实现功能需要配置的寄存器集成了,HAL库则是做到了某些特定功能的集成。HAL库很好的解决了程序移植的问题,但也使得其效率低下。

差异
在编程中,可以明显感觉到,HAL库编程要比标准库编程要简单一些,往往标准库中要实现的功能可以通过HAL一条语句解决。在社区里浏览时,我发现有许多人对于HAL库评价不是很高,但作为初学者,从我自己的使用来看,其对于我们平时的编程还是有着很大的用处(from JustA-LoNg)
三、stduino IDE试玩体会
stduino IDE的界面和操作比起keil要简单的多,上手容易,这是中国人自己搭建的MCU集成开发平台,不会被“卡脖子”,所以有必要“再造车轮”。