Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

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


链接:https://pan.baidu.com/share/init?surl=kqpP1YGKtY2WRz9GNT0Z7w
提取码:q251

1.用Ardunio IDE完成stm32f103指南者的串口通信。

安装Ardunio IDE
先把上面链接里的东西下载出来
然后解压安装Ardunio,选择默认安装,安装路径可以自行选择,但是路径里不能有中文。
在这里插入图片描述

在这里插入图片描述
配置Ardunio IDE
将打包文件中的Arduino_STM32整个文件夹拷贝到Arduino安装目录下的hareware下。
在这里插入图片描述
然后打开Arduino,在Arduion中安装编译支持文件
菜单栏\工具\开发板…\第一栏的开发板管理器在这里插入图片描述
输入ARM关键字搜索,选中Cortex-M3系列的编译支持文件并安装,安装过程可能需要几分钟,耐心等待。
在这里插入图片描述
安装完成后,在菜单栏\工具\开发板选择芯片类型,由于我使用的是stm32f103指南者,所以选择为Generic STM32F103V series。
在这里插入图片描述
Variant,Upload method,CPU Speed,Optimize的选择如图所示:

在这里插入图片描述
连接stm32f103指南者开发板
直接用usb线把开发板与电脑相连即可。
但注意usb线连接的开发板的"usb转串口"这个接口。
然后用跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,
TXD与A10相连。
在这里插入图片描述
烧录程序(stm32f103指南者)
以下代码完成:
1)持续向串口输出“Hello world!”;
2)当接收到“stop”时,停止输出。
3) 小灯闪烁。

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); // 延迟
}
}

选择串口,我这里是串口6
在这里插入图片描述
然后依次点击验证,烧录。(注意每一次烧录文件前一定要按开发板上的RESET按钮)
在这里插入图片描述
然后小灯开始闪烁,串口收到的信息点击串口监视器及可看到
在这里插入图片描述
但要注意该处波特率的设置
在这里插入图片描述

当在发送框内输入stop时,会停止输出。
在这里插入图片描述
灯也会闪烁

在这里插入图片描述

2.基于标准库函数与基于HAL库函数的stm32编程方式的差异。

标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。这应该是目前使用最多的ST库。几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。相对于HAL库,标准外设库仍然接近于寄存器操作,主要就是将一些基本的寄存器操作封装成了C函数。开发者需要关注所使用的外设是在哪个总线之上,具体寄存器的配置等底层信息。使用标准库有利于开发者了解芯片特性和原理,代码要自己组织。

HAL库是Hardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。该库提供了一整套一致的中间件组件,如RTOS,USB,TCP / IP和图形等。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了,比如F7系列。目前,HAL库已经支持STM32全线产品。

3.stduino IDE使用体会

比起keil,stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,支持Arduino_Core_STM32框架,不需要太多的单片机基础、编程基础,简单学习后,可以快速的进行开发,自带程序烧录,自带串口调试,软件界面简洁,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: JavaScript的DOM,BOM简单介绍

下一篇: C#新大陆物联网云平台的连接(简易理解版)

精华推荐