一、基于寄存器、固件库编程的差异性
基于寄存器与基于固件库的 stm32 LED 流水灯例子的编程方式有什么差异
使用固件库,目前比较多的例程是使用固件库编写的。官方的例子也都采用固件库方式。特点就是简单,易于理解,资料多。如果你没有 CortexM 系列内核的开发基础,建议从固件库开始玩起。等有一定基础,或是特别需要时再用寄存器,本篇文章采用的就是固件库。
使用寄存器,想要深入理解 CortexM3 内核或是需要为了获得更好的可移植性,学习寄存器编程会比较有帮助。但是从专业的角度上看,寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。
二、串口通讯实验前的了解及准备
USB 转串口讲解
串口通讯过程:
串口设备间常见的通讯结构,如下图所示:

两个通讯设备的 “ DB9 接口 ” 之间通过串口信号线建立起连接,串口信号线中使用 “ RS-232 标准 ” 传输数据信号。由于 RS-232 电频标准的信号不能直接被控制器直接识别,所以这些信号会经过一个 “ 电平转换芯片 ” 转换成控制器能识别的 “ TTL 标准 ” 的电平信号,才能实现通讯。
串口通讯可分为 “ RS-232 标准 ” 和 “ TTL 标准 ”。

转串口硬件部分:
下图是 USB 转串口硬件原理图:

指南者的电平转换芯片采用的是 CH340G ,上图的所有内容就是 USB 转串口部分,如果缺失这个部分就无法使用 USB 进行通讯,而指南者将 USB 转串口焊在了上面,所以不需要我们自己单独去买转串口。
下图是指南者实物转串口部分:
指南者还有其它的串口,这里是串口一,我们只需要只用这一个串口就行了。
三、串口通讯实验过程
第一步:获取代码
首先下载代码。
在打开工程之前,需要对 keil 的编码方式进行设置,否则会中文乱码。

解压缩文件,然后在路径:USARTProjectRVMDK(uv5)目录文件下双击打开BH-F103.uvprojx文件。

然后 keil 会打开这个工程(后面我们编写的代码风格其实和 C 语言类似,只不过有很多接口、引脚的引用不熟悉而已)。
在编写代码的时候,只需要编写这三个文件的代码就行了,其它的文件都是库,不需要更改。
注释也挺全,可以看得懂,后面就不讲解代码了。

第二步:安装 USB 转换口驱动
电脑安装 USB 转串口的驱动。
点击 “ 安装 ” ,安装完后弹窗。

第三步:硬件连接
使用 USB 线连上 USB 转串口,使用杜邦线连接 SWD ,SWD 怎么连呢?继续往下看。
看板子的背面,这里我们只需要用杜邦线依次连接 SWCLK、GND、SWDIO、3V3 就行了。
说明:
NRST:异步复位脚,重置除了 RTC 的寄存器以及后备存储器的寄存器;
SWCLK:时钟开关;
GND:接地;
SWDIO:输入/输出控制。
3V3:电源。
杜邦线的另一端接 ST_LINK ,根据正面提示的引脚来进行接入,如下图:

然后将两个 USB 接口插到电脑上,并打开开关(这样,板子就连通了电脑),之后可以进行程序的烧录。
第四步:keil 设置
在 keil 的安装路径中找到 dpinst_amd64.exe 安装程序(ST-Link的驱动),并双击打开,点击 “ 下一步 ”,然后安装即可。
注:我是安装在 E 盘的,路径为 E:keilARMSTLinkUSBDriverdpinst_amd64.exe ,可以参考这个路径。
然后在 keil 软件中,点击 魔术棒 ——》 Output ,勾选上 “ Create HEX File ” 选项。
说明:将 C 文件转换成 HEX 文件,才能烧录到板子中。

进入 “ Debug ” 项,在 Use:中选择 ST-Link Debugger(因为我们使用的是 ST-Link)。

然后点击 ST-Link ST-Link Debugger 框的右边 Settings。
Port 项勾选为 SW 。

然后点击上方的 “ Flash Download ”,勾选上 “ Reset and Run ” ,然后点击 “ Add ” ,选上 STM32F10x High-density Flash ,添加完毕后点击 确定 ——》 OK,设置完毕。
第五步:烧录程序
先点击 “ 编译 ” 按钮,编译一下,程序没有错误,再点击 “ 下载 ” 按钮烧录到板子中。

编译无错且烧录成功,结果如下。

第六步:使用串口助手
双击打开 “ 野火串口调试助手.exe ” 文件。

设置各个参数,如下图所示,然后再点击 “ 打开串口 ” 按钮。

在输入框中输入:stop,stm32!,并换行,记住!!一定要换行!!!
四、总结
其实根据这一篇文章并不会学到太多,只是演示设置 keil 、烧录程序、结果显示的过程,而真正的重点其实是在代码部分,虽然我有注解,但是还是根据视频来学才扎实,可以点击参考资料中的视频链接,可以学到很多,一个学习。
一、基于寄存器、固件库编程的差异性
基于寄存器与基于固件库的 stm32 LED 流水灯例子的编程方式有什么差异
使用固件库,目前比较多的例程是使用固件库编写的。官方的例子也都采用固件库方式。特点就是简单,易于理解,资料多。如果你没有 CortexM 系列内核的开发基础,建议从固件库开始玩起。等有一定基础,或是特别需要时再用寄存器,本篇文章采用的就是固件库。
使用寄存器,想要深入理解 CortexM3 内核或是需要为了获得更好的可移植性,学习寄存器编程会比较有帮助。但是从专业的角度上看,寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。
二、串口通讯实验前的了解及准备
USB 转串口讲解
串口通讯过程:
串口设备间常见的通讯结构,如下图所示:

两个通讯设备的 “ DB9 接口 ” 之间通过串口信号线建立起连接,串口信号线中使用 “ RS-232 标准 ” 传输数据信号。由于 RS-232 电频标准的信号不能直接被控制器直接识别,所以这些信号会经过一个 “ 电平转换芯片 ” 转换成控制器能识别的 “ TTL 标准 ” 的电平信号,才能实现通讯。
串口通讯可分为 “ RS-232 标准 ” 和 “ TTL 标准 ”。

转串口硬件部分:
下图是 USB 转串口硬件原理图:

指南者的电平转换芯片采用的是 CH340G ,上图的所有内容就是 USB 转串口部分,如果缺失这个部分就无法使用 USB 进行通讯,而指南者将 USB 转串口焊在了上面,所以不需要我们自己单独去买转串口。
下图是指南者实物转串口部分:
指南者还有其它的串口,这里是串口一,我们只需要只用这一个串口就行了。
三、串口通讯实验过程
第一步:获取代码
首先下载代码。
在打开工程之前,需要对 keil 的编码方式进行设置,否则会中文乱码。

解压缩文件,然后在路径:USARTProjectRVMDK(uv5)目录文件下双击打开BH-F103.uvprojx文件。

然后 keil 会打开这个工程(后面我们编写的代码风格其实和 C 语言类似,只不过有很多接口、引脚的引用不熟悉而已)。
在编写代码的时候,只需要编写这三个文件的代码就行了,其它的文件都是库,不需要更改。
注释也挺全,可以看得懂,后面就不讲解代码了。

第二步:安装 USB 转换口驱动
电脑安装 USB 转串口的驱动。
点击 “ 安装 ” ,安装完后弹窗。

第三步:硬件连接
使用 USB 线连上 USB 转串口,使用杜邦线连接 SWD ,SWD 怎么连呢?继续往下看。
看板子的背面,这里我们只需要用杜邦线依次连接 SWCLK、GND、SWDIO、3V3 就行了。
说明:
NRST:异步复位脚,重置除了 RTC 的寄存器以及后备存储器的寄存器;
SWCLK:时钟开关;
GND:接地;
SWDIO:输入/输出控制。
3V3:电源。
杜邦线的另一端接 ST_LINK ,根据正面提示的引脚来进行接入,如下图:

然后将两个 USB 接口插到电脑上,并打开开关(这样,板子就连通了电脑),之后可以进行程序的烧录。
第四步:keil 设置
在 keil 的安装路径中找到 dpinst_amd64.exe 安装程序(ST-Link的驱动),并双击打开,点击 “ 下一步 ”,然后安装即可。
注:我是安装在 E 盘的,路径为 E:keilARMSTLinkUSBDriverdpinst_amd64.exe ,可以参考这个路径。
然后在 keil 软件中,点击 魔术棒 ——》 Output ,勾选上 “ Create HEX File ” 选项。
说明:将 C 文件转换成 HEX 文件,才能烧录到板子中。

进入 “ Debug ” 项,在 Use:中选择 ST-Link Debugger(因为我们使用的是 ST-Link)。

然后点击 ST-Link ST-Link Debugger 框的右边 Settings。
Port 项勾选为 SW 。

然后点击上方的 “ Flash Download ”,勾选上 “ Reset and Run ” ,然后点击 “ Add ” ,选上 STM32F10x High-density Flash ,添加完毕后点击 确定 ——》 OK,设置完毕。
第五步:烧录程序
先点击 “ 编译 ” 按钮,编译一下,程序没有错误,再点击 “ 下载 ” 按钮烧录到板子中。

编译无错且烧录成功,结果如下。

第六步:使用串口助手
双击打开 “ 野火串口调试助手.exe ” 文件。

设置各个参数,如下图所示,然后再点击 “ 打开串口 ” 按钮。

在输入框中输入:stop,stm32!,并换行,记住!!一定要换行!!!
四、总结
其实根据这一篇文章并不会学到太多,只是演示设置 keil 、烧录程序、结果显示的过程,而真正的重点其实是在代码部分,虽然我有注解,但是还是根据视频来学才扎实,可以点击参考资料中的视频链接,可以学到很多,一个学习。
举报