STM32固件库(标准外设库)入门学习 第四章OLED屏幕使用


本学习教程,参考B站江科大自化协STM32视频,型号为STM32F103C8T6。


文章目录

  • STM32固件库(标准外设库)入门学习 第四章OLED屏幕使用
  • 前言
  • 一、程序调试方法
    • 1.串口调试
    • 2.显示屏调试
    • 3.Keil调试模式
    • 4.点灯调试法
    • 5.注释调试法
    • 6.对照法
  • 二、显示屏调试——OLED
    • 1.OLED简介
    • 2.如何使用OLED驱动函数
  • 总结

前言

对于单片机而言,目前有个问题就是程序调试,单片机不像电脑,电脑有一个很大的屏幕,想看什么变量、参数,直接打印到屏幕上就可以了,但是单片机不一样,很多时候由于成本和电路结构的限制,其并不会有一个像电脑屏幕那样强大的显示屏,这就对的调试造成了困难。就像让你学习C语言,但是不让你用printf这个打印函数,C语言是不是根本就没法学。同样给你一个单片机,但是没有一个可以显示参数的东西,那也没法学单片机。所以先来学习程序调试方法。


一、程序调试方法

1.串口调试

通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息,这种非常常见,就是用串口将单片机连接到电脑,相当于把电脑的屏幕挂在单片机上,方便单片机显示调试信息,一般再设计PCB电路板的时候,都会PCB边上留一个串口通信的引脚,需要调试程序的时候,把单片机连在电脑上,然后就可以在电脑屏幕打印信息了,调试好后,断开串口,程序就能正常工作。串口调试的优势是不仅可以显示单独的参数,还可以显示曲线、图形、图像等,还可以自己制作软件,实现一个强大的用户交互界面。弊端就是调试的时候要拖着电脑,而且通常串口助手只能以信息流的方式呈现数据,只能一行一行的打印,若有很多变化的数据要显示,那么只能在电脑上刷屏显示,这样用起来就不太方便。

2.显示屏调试

直接将显示屏连接到单片机,将调试信息打印在显示屏上,这种方法比较直接,单片机没有参数的东西,那就直接接一个屏幕上去。优势:对于不断变化的数据,可以覆盖刷新显示,显示屏接在单片机上,显示方式很直接,做一些稍微复杂的东西,都需要有一个人机交互的界面,可以直接把显示屏当作产品的一部分,比较好用。弊端就是屏幕太小,显示内容有限,没有电脑软件那么强大的功能。

3.Keil调试模式

借助Keil软件的调试模式,可使用单步运行、设置断点、查看寄存器及变量等功能。这是一个强大的工具,在魔术棒,debug里,目前选择的是ST-LINK,这时需要把ST-LINK与STM32都连接好,不想连接硬件,也可以选择左侧使用仿真器(use simulator)。使用ST-LINK,进入调试前,连接好是stm32,之后编译一下,确保工程没有问题,找到放大镜带d的图标,进入调试模式。


进入调试模式后:
主窗口为C语言调试程序。
上面窗口就是C翻译成汇编程序。
左侧窗口是寄存器组和标志位等信息,这个是单片机硬件底层很重要的东西,汇编需要,c语言不用管。
上面一栏,第一个是复位,第一个是全速运行,第三个是停止运行,第四个是单步运行,第五个是跳过当前行单步运行,第六个跳出当前函数单步运行,第七个跳到光标指定行单步运行。这种方式可以精确追踪程序是如何运行的,如果不清楚程序是如何一步步运行的,在此调试模式里单步运行探索一下,可以对程序的运行逻辑就会有更深的理解。还有更强大的功能,包括命令窗口、反汇编窗口、符号窗口【这里可以实时查看程序中所有变量的值,右击添加到watch1窗口】、串口显示、逻辑分析仪等,自行探索。
在外设(peripherals)菜单栏,可以实时看到所有外设寄存器的状态。

4.点灯调试法

如果不知道程序是否执行到某个位置,就可以在这个位置放一个点灯代码,运行到灯就亮,没有运行到灯就不亮。

5.注释调试法

程序原来是好的,加了某段程序就死了,这时可以把新加入的程序全部注释掉,恢复到正常运行状态,然后依此一行一行解除注释,指导错误出现。或注释一部分测试一部分,减少程序运行的部分,来定位出问题的程序。

6.对照法

找一个没问题的程序,他的执行逻辑没问题,你感觉自己写的也没问题,但是他的可以运行,你的却不行。此时可以对照一下,在他的程序逻辑上,逐步替换成你的程序逻辑,这样比较容易发现错误的位置。
总之测试程序的基本思想就是缩小范围、控制变量、对比测试等。

二、显示屏调试——OLED

重点介绍利用OLED显示屏进行调试

1.OLED简介



左图SCL和SDA是I2C的通信引脚,本教程所给的驱动模块函数是GPIO口模拟的I2C通信,所以这两个端口可以接在任意的GPIO口上。
右图7针脚的电路,初电源外剩下的是SPI协议的引脚。若用GPIO口模拟的通信协议,接在任意GPIO口即可。

所给的OLED驱动函数入上所示,把OLED分割成4行16列。

2.如何使用OLED驱动函数


OLED的供电孔接下方电源,当然这也会接到PB6、PB7两个引脚,这也没关系,只要不初始化这两个引脚就可以。STM32上电后,如果不初始化,默认是浮空输入的模式,这个模式下,引脚不会输出电平,不会有什么影响。当然也可以不接电源线,直接用PB6、PB7直接给OLED供电也可以,因为OLED功率很小,可以直接驱动,但是这种方式不规范,做实际项目的话最好还是用电源供电。

使用OLED函数仅需要修改这些位置。OLED_Font.h是OLED的字库文件,.c会用到这些数据


总结

本文主要介绍利用OLED显示屏的调试方法,后面会常用到此方法

STM32固件库(标准外设库)入门学习 第四章OLED屏幕使用相关推荐

  1. hal库选择滴答时钟函数_STM32入门 : HAL库、标准外设库、LL库

      国内使用STM32 单片机的人很多,ST 为开发者提供了非常方便的开发库:有标准外设库(SPL 库).HAL 库.LL 库 三种.前者是ST的老库,后两者是ST现在主推的开发库,其中 LL 库是 ...

  2. STM32 之一 HAL库、标准外设库、LL库(STM32 Embedded Software)

    2020.2.4: 更新内容 STM32 Embedded Software   工作以来一直使用 ST 的 STM32 系列芯片,ST 为开发者提供了非常方便的开发库.到目前为止,有标准外设库(SP ...

  3. 官网下载stm32f407固件库(标准外设)详细步骤

    可通过此处找到STM32的各个标准外设库 STM32 ARM Cortex 32位微控制器 - STMicroelectronics 下载STM32F407的标准外设库,可直接点击下面链接 STM32 ...

  4. STM32固件库(标准外设库)入门学习 第六章TIM定时器(一)

    STM32固件库(标准外设库)入门学习 第六章TIM定时器(一) 文章目录 STM32固件库(标准外设库)入门学习 第六章TIM定时器(一) 前言 一.定时器类型 1 基本定时器 2 通用定时器 3 ...

  5. stm32固件库(STM32F10x标准外设库)V3.5简介

    STM32F固件库是根据CMSIS(ARM Cortex微控制器软件接口标准)而设计的.CMSIS标准由ARM和芯片生产商共同提出,让不同的芯片公司生产的Cortex M3微控制器能在软件上基本兼容. ...

  6. keil stm32标准库放在哪里_使用Keil MDK以及标准外设库创建STM32工程

    应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...

  7. keil stm32标准库放在哪里_STM32(1)——使用Keil MDK以及标准外设库创建STM32工程...

    转载来自:http://emouse.cnblogs.com 1.1 开发工具与开发环境 1. 软件版本 本节所使用Keil MDK 为目前的最新版V4.21.其他版本差别不大,读者可以根据自己使用的 ...

  8. STM32 HAL库、标准外设库、LL库(STM32 Embedded Software)

    STM32 Embedded Software 工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL库 三种.前两者都是常 ...

  9. 使用Keil MDK以及标准外设库创建STM32工程

    应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板,个人录制,欢迎指正.下载地址:http://dl.dbank.com/c0w0ehqynd 2013.3补充在线视频教程 ...

最新文章

  1. 前后端分离的探索(一)
  2. php判断邮箱是否合法性,php验证邮箱地址合法性
  3. 谷歌发安全警告:社交网络威胁用户隐私
  4. Oracle 11g新特性:Automatic Diagnostic Repository
  5. Android 应用内微信 H5 支付
  6. daemon函数的原理及使用详解
  7. 自如被起诉索赔了!因装修致邻居家房屋漏水...
  8. IDEA用maven创建springMVC项目和配置(XML配置和Java配置)
  9. HCS12XEP100 ADC与SCI2的冲突解决 (2011-4-15)
  10. ios app上传图片与文件到服务器,iOS开发之上传图片视频到服务器
  11. nginx location配置直接输出文本
  12. css3静态进度条,CSS3+JS实现静态圆形进度条
  13. 营销圈带你从微博推广角度看《延禧攻略》如何完美KO《如懿传》
  14. CTF题记——取证小集合
  15. 周杰伦要出新专辑了?上 Instagram 看看
  16. zabbix Lack of free swap space
  17. 联诚发龙显P1.25系列LED大屏亮相宝安区区政府会议室
  18. (Lightweight multi-scale aggregated residual attention networks for image super-resolution)阅读笔记
  19. 【Unity 优化篇】 | 优化专栏《导航帖》,全面学习Unity优化技巧,让我们的Unity技术上升一个档次
  20. 用英语提交软件测试bug,软件测试——关于提交bug随笔

热门文章

  1. linux查看php端口,Linux如何查看端口状态
  2. React 基础----1
  3. [转]图像梯度:算子
  4. 【密码学】 一篇文章讲透数字证书
  5. ERR_REQUIRE_ESM
  6. ThinkPad E545连WiFi教程(系统:ubuntu-20.04.3-live-server,无线网卡:BCM34142)
  7. 服务器系统如何管理网络连接不上,详解Windows Server 2008网络设置技巧技术教程...
  8. 在SAR-Opt数据融合领域针对深度学习的SEN1-2数据集
  9. JAVA中三种URL连接方法
  10. 登录后跳转又提示未登录