Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

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

通过Ardunio完成基于stm32f103指南者的串口通信

一、安装Ardunio IDE

链接: 安装包压缩文件.
提取码:(q251)

1、安装文件

1、下载成功后,解压文件
在这里插入图片描述
2、双击第三个.exe文件开始安装,安装的时候直接按他默认的走就可以了
(注:安装路径文件名不得出现汉字)
在这里插入图片描述
3、将打包文件中的Arduino_STM32复制到Arduino下的hareware文件里。
在这里插入图片描述
在这里插入图片描述
4、打开Arduino,然后按下图操作打开开发板管理器
在这里插入图片描述
5、然后再输入ARM进行搜索,然后再下面的框里找到Cortex-M3进行安装
在这里插入图片描述
6、然后按下图操作选择Generic STM32F103V series
在这里插入图片描述
7、选择成功后下面其他选项如下图进行选择
在这里插入图片描述

软件的安装到这里就完成了

二、连接开发板并烧录运训程序

1、连接开发板

1、连接stm32f103指南者开发板
通过开发板上的usb转串口接口将板子和电脑连接上
然后用跳帽将BOOT0与3v3相连,BOOT1与GND相连,RXD与A9相连,
TXD与A10相连。
在这里插入图片描述

2、烧录程序

1、程序要求:
(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); // 延迟
}
}

2、如图操作连接串口(如果没有显示,需要按一下开发板上的reset)
在这里插入图片描述

3、保存文件,然后点击左上角的勾勾进行验证

(点验证(左上)会弹出来保存窗口)
在这里插入图片描述
在这里插入图片描述

4、然后进行烧录(烧录前需要按reset)
在这里插入图片描述
在这里插入图片描述
5、然后打开串口监视器接可以看到串口收到的信息
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器,可以让我们写代码时更简洁。这应该是目前使用最多的ST库,几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。
HAL库是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。而且HAL库不光实现了寄存器的集成,还实现了一些特定功能的集成,也就是说标准外设库有时需要用几行代码完成的,HAL库一行代码就可以完成

四、stduino IDE使用体会

比起keil,stduino极易掌握,同时有着足够的灵活性。不需要太多的单片机基础、编程基础,简单学习后,可以快速的进行开发,自带程序烧录,自带串口调试,软件界面简洁。stduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行。而且Arduino不只是开发板,还是开源的电子平台。

参考文献:
https://blog.csdn.net/qq_42762607

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

上一篇: Xiaojie雷达之路---TI实战笔记---CLI源码解析

下一篇: Arduino 基于 STM32 的串口通讯与 LED 灯闪烁

精华推荐