云龙数码行业报告

stm32数码管动态显示延时,数码管的动态显示延迟时间

大家好,今天小编关注到一个比较有意思的话题,就是关于stm32数码管动态显示延时问题,于是小编就整理了3个相关介绍stm32数码管动态显示延时的解答,让我们一起看看吧。

  1. stm32怎么修改延时没有用,程序始终那么快?
  2. 如何设计一个单片机可控的循环流水灯?
  3. stm32是用hal库,还是标准库?懂行的介绍一下?

stm32怎么修改延时没有用,程序始终那么快?

stm32可以使用systick定时器实现延时的功能,不需要这么写,具体可以看一下正点原子开发板的例程或者野火的。

如果非要这么写,也没关系。使用MDK软件设定好当前MCU的时钟频率,使用软件仿真,单独执行自己写的for循环延时,会在左边的寄存器窗口出现具体使用了多少时间,你可以根据这个情况修改for循环里的变量参数

stm32数码管动态显示延时,数码管的动态显示延迟时间
图片来源网络,侵删)

如何设计一个单片机可控的循环流水灯

首先在硬件方面,我们使用了最经典的选型用AT89S51单片机作为主控芯片

LED电路选用共阳极接法:8路红色LED灯正极接5V电源、各路串联一个限流电阻,保护发光二极管不被烧坏,同时控制LED工作电流控制在10mA以内;根据I=U/R,则选用1K大小电阻。阴极分别接到P1.0~P1.7口,组成LED发光二极管驱动电路

按键选用独立按键方式。选用10K电阻与按键串联,一端接5V,一端接单片机IO口P2.0,如下图所示:

stm32数码管动态显示延时,数码管的动态显示延迟时间
(图片来源网络,侵删)

我们来看一下软件部分:

首先包含头文件,调用51单片机寄存器定义。第二行的***it是用来定义一个引脚值(即P2.0用KEY来表示);

1、发光二级管可以选择共阴极或者共阳极连接

stm32数码管动态显示延时,数码管的动态显示延迟时间
(图片来源网络,侵删)

2、最好用的驱动方法:查表法。(共阴到共阳转换只需增减一个符号:~,而且很方便改变流水单的花样。我做过51,stm32,arduino的)。

3、如果只是简单的“流”一下,那么可以简单粗暴地用for+delay搞定。如果要增加一些别的花样,例如电位器控制“流速”,那就得打开定时中断,分配任务。

stm32是用hal库,还是标准库?懂行的介绍一下?

标准库函数则是ST以前推出的,包括寄存器版本和库函数版本。寄存器版本使用较麻烦,每个设置都要去查看芯片datasheet,好处是可以让你熟悉芯片的寄存器配置。库函数是基于寄存器版本进行二次封装

推出的,它的优势就是寄存器版本的劣势,方便了使用,不再需要手动去配置寄存器,使用更方便了。但是它的劣势就是HAL的优势,就是每次修改MCU功能,都需要手动去修改功能,而且自己修改也不能

保证正确性,程序代码在不同MCU之间的移植性不强。

HAL库,HAL是Hardware Abstraction Layer的缩写中文名称是:硬件抽象层,HAL库工程一般使用Cube软件来生成工程。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,

更方便的实现跨STM32产品的最大可移植性。优势就是不需要开发工程师再关注所用MCU型号,只需要专注所以要的功能软件开发工作。而且是未来主推的方向,正在不断的推出更新

建议平时用的时候自动更新关闭,否则会出现之前调试好的代码因为更新导致不能正常工作。设置方法点Cube软件的help,然后选择手动更新,详细见配图。

以我和公司工程师研发经历来看,最开始的时候都使用标准库函数,后来发现ST推出HAL库以后,慢慢都转到HAL库的开发。它的优势在于不同芯片间软件代码的移植性非常强,而且用Cube软件生成

的工程规定了自己的代码放置位置,如果不按规定写,重新用Cube生成工程时自己的代码会被覆盖,进一步加强了代码的移植性。

另外,如果需要修改MCU的功能,比如新添加GPIO或者[_a***_],***用标准库函数的时候,需要***其他串口的初始化代码,然后手动修改。而***用HAL库则不需要,只需要在Cube添加设置,然后生成即可,

Cube自动帮你把初始化代码生成。

到此,以上就是小编对于stm32数码管动态显示延时的问题就介绍到这了,希望介绍关于stm32数码管动态显示延时的3点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.nickplaister.com/post/21944.html

分享:
扫描分享到社交APP