完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、基于寄存器、固件库编程的差异性
基于寄存器与基于固件库的 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 、烧录程序、结果显示的过程,而真正的重点其实是在代码部分,虽然我有注解,但是还是根据视频来学才扎实,可以点击参考资料中的视频链接,可以学到很多,一个学习。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:21 , Processed in 0.636877 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号