通过Ardunio完成基于stm32f103指南者的串口通信
日期: 2020-12-14 分类: 跨站数据测试 673次阅读
通过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
精华推荐