历史上的今天
返回首页

历史上的今天

今天是:2025年03月07日(星期五)

正在发生

2018年03月07日 | STM32 延时函数封装程序

2018-03-07 来源:eefocus

    /*---------------------------------

    延时模块函数

    说明:只需在工程中加入delay.c和delay.h

    文件,即可用 Delayms(__IO uint32_t nTime);

    Delayus(__IO uint32_t nTime)


    -----------------------------------*/

    #ifndef __DELAY_H

    #define __DELAY_H

    #include "stm32f10x.h"

    /*---------------------------------

    描 述:参数1即为1ms,1000即为1s;只有几

    us的误差;

    -----------------------------------*/

    extern void Delayms(__IO uint32_t nTime);

    /*---------------------------------

    描 述:参数1即为1us,1000即为1ms;只有几

    us的误差;

    -----------------------------------*/

    extern void Delayus(__IO uint32_t nTime);

    /*---------------------------------

    函数名:延时调整形式的delaynus函数,

    描 述:参数1即为1us,1000即为1ms;

    -----------------------------------*/

    extern void delay_nus(unsigned long n);

    /*---------------------------------

    函数名:延时调整形式的delaynms函数,

    描 述:参数1即为1ms,1000即为1s;

    -----------------------------------*/

    extern void delay_nms(unsigned long n);

    #endif

    C 函数

    /*---------------------------------

    延时模块函数

    说明:只需在工程中加入delay.c和delay.h

    文件,即可用 Delayms(__IO uint32_t nTime);

    Delayus(__IO uint32_t nTime)

    -----------------------------------*/

    #include"delay.h"

    statIC __IO uint32_t TimingDelay;

    /* Private function prototypes -----------------------------------------------*/

    /*---------------------------------

    函数名:ms延时函数

    描 述:参数1即为1ms,1000即为1s;只有几

    us的误差;

    -----------------------------------*/

    void Delayms(__IO uint32_t nTime)

    {

    while(SysTick_Config(SystEMCoreCLOCk/1000));

    TimingDelay = nTime;

    while(TimingDelay != 0);

    SysTick->CTRL=0x00; //关闭计数器

    SysTick->VAL =0X00; //清空计数器

    }

    /*---------------------------------

    函数名:us延时函数

    描 述:参数1即为1us,1000即为1ms;只有几

    us的误差;

    -----------------------------------*/

    void Delayus(__IO uint32_t nTime)

    {

    while(SysTick_Config(SystEMCoreClock/1000000));

    TimingDelay = nTime;

    while(TimingDelay != 0);

    SysTick->CTRL=0x00; //关闭计数器

    SysTick->VAL =0X00; //清空计数器

    }

    /*---------------------------------

    函数名:延时辅助函数

    描 述:

    -----------------------------------*/

    void TimingDelay_Decrement(void)

    {

    if (TimingDelay != 0x00)

    {

    TimingDelay--;

    }

    }

    /*---------------------------------

    函数名:systick的中断函数

    描 述:参数1即为1us,1000即为1ms;只有几

    us的误差;

    -----------------------------------*/

    void SysTick_Handler(void)

    {

    TimingDelay_Decrement();

    }

    /*---------------------------------

    函数名:延时调整形式的delaynus函数,

    描 述:参数1即为1us,1000即为1ms;

    -----------------------------------*/

    void delay_nus(unsigned long n)

    {

    unsigned long j;

    while(n--)

    {

    j=12;

    while(j--);

    }

    }

    /*---------------------------------

    函数名:延时调整形式的delaynms函数,

    描 述:参数1即为1ms,1000即为1s;

    -----------------------------------*/

    void delay_nms(unsigned long n)

    {

    while(n--)

    delay_nus(1030);

    }


推荐阅读

史海拾趣

Galaxy Microelectronics公司的发展小趣事

江苏飞翼智能科技有限公司在无人机航模领域也有着深厚的积累。公司不仅自己购买零件组装各类航模,还积极参与国内航模比赛,凭借良好的飞机性能和一流的操控技术取得了不俗的成绩。尤其是涡喷航模,作为中高级的航模产品,其高难度的特技动作展示了飞翼智能在无人机技术方面的深厚功底。这些经验积累和技术创新为飞翼智能向无人机应用型企业转型奠定了坚实基础。

Furukawa Electric Co Ltd公司的发展小趣事

江苏飞翼智能科技有限公司在无人机航模领域也有着深厚的积累。公司不仅自己购买零件组装各类航模,还积极参与国内航模比赛,凭借良好的飞机性能和一流的操控技术取得了不俗的成绩。尤其是涡喷航模,作为中高级的航模产品,其高难度的特技动作展示了飞翼智能在无人机技术方面的深厚功底。这些经验积累和技术创新为飞翼智能向无人机应用型企业转型奠定了坚实基础。

BAHCO公司的发展小趣事

一直以来,BAHCO都秉持着创新的设计理念和对品质的极致追求。其鱼和鱼钩的商标不仅代表了公司的品牌形象,更是品质的保证。通过不断的研发和技术创新,BAHCO的产品在功能性、耐用性和舒适性等方面都达到了行业领先水平。这种对品质的不懈追求,使得BAHCO在全球工具市场上获得了广泛的认可和好评。

CyOptics Inc公司的发展小趣事

在被Avago收购后,CyOptics并未停止其技术创新的步伐。公司继续投入研发,推出了一系列新的光学产品和解决方案,以满足不断增长的市场需求。例如,CyOptics的物理介质相关(PMD)IC产品系列,不仅提供了完整的GaAs芯片组件,还提供了跨阻放大器(TIA)、激光驱动器(LD)等一站式芯片套件解决方案,为客户提供了更加便捷和高效的服务。

BLACK&DECKER公司的发展小趣事

2010年3月15日,BLACK&DECKER迎来了公司历史上的一个重要时刻——与史丹利公司合并组建史丹利百得公司。这一合并不仅使BLACK&DECKER获得了更强大的资源和市场支持,还为其未来的发展提供了更广阔的空间。合并后的史丹利百得公司致力于提供整合的五金工具、存储设备和安防系统解决方案,以满足全球消费者的多样化需求。通过整合双方的优势资源和技术力量,史丹利百得公司有望在电子行业中取得更加辉煌的成就。

综上所述,BLACK&DECKER公司在电子行业中的发展故事充满了创新、进取和成功的元素。从创立初期的艰苦创业到如今的全球领先品牌,BLACK&DECKER凭借其卓越的产品质量、技术创新和市场拓展能力,赢得了消费者的信任和市场的认可。未来,随着科技的不断进步和市场需求的不断变化,BLACK&DECKER将继续保持创新精神,推动电子行业的持续发展。

德旭电子(DEXU)公司的发展小趣事

在德旭电子的发展历程中,供应链管理和成本控制一直是公司关注的重点。为了降低生产成本和提高产品质量,公司不断优化供应链管理流程和技术手段。

德旭电子与多家优质供应商建立了长期稳定的合作关系,并通过引入先进的供应链管理软件和系统实现了供应链的数字化和信息化管理。这些措施有效提高了供应链的响应速度和灵活性,降低了库存和运营成本。

在成本控制方面,德旭电子注重精细化管理和持续改进。公司通过优化生产流程、提高生产效率、降低能耗和原材料成本等措施不断降低生产成本。同时,公司还建立了完善的成本管理体系和考核机制确保成本控制工作的有效实施。

问答坊 | AI 解惑

关于运放的虚短

请各位电子高手从内部结构上解释一下运放的“虚短”,谢谢!…

查看全部问答>

发布一块Renesas开发板的全部资料

Renesas单片机前身是三菱和日立单片机的联盟。因此每年出货量全球第一位。 设计了一块对此单片机的评估板,也可以说是一块开发板。(板子已经在制版,焊接好发图片,下周五之前) 因为不涉及公司机密,将在这个帖子里面发布我的所有资料。只是可惜 ...…

查看全部问答>

FPGA的设计(入门级)

适合想学习FPGA的朋友,是PPT格式的.…

查看全部问答>

CE6.0 R3里的QQ和MSN支持语音聊天吗?

在有网络供使用的情况下,CE6.0 R3里的QQ和MSN支持语音聊天吗? 谢谢各位!…

查看全部问答>

请教TCPMP视频问题

请教各位DX:    我现在通过修改interface来实现自己设计的界面,由于修改了视频显示区域,所以原有视频显示不正常,有拉伸,如何修改原有视频数据,达到正常的缩放显示效果。…

查看全部问答>

关于wince的串口占用问题

老师给了一个任务要做串口通讯,但是所给的开发板老师说只有一个串口,所以在应用程序通讯的时候要先关闭wince的调试串口,但是我找遍所有的资料好像都没有写到怎么关闭那个调试串口,天极网有个wince的精华贴,说通过修改内核注释掉初始化串口的那 ...…

查看全部问答>

压缩数据库sdf文件

using System.Data.SqlServerCe 我在EVC下使用using System.Data.SqlServerCe和SqlCeEngine, 编译提示:undeclared identifier! 请问该如何解决? 在EVC下是如何:压缩数据库sdf文件的! 感激不尽,零表涕蔹!…

查看全部问答>

感谢ST今天去研讨会,居然得了个大奖-MDK全套开发工具无限

keil MDK的开发工具包,内部用ULINK2和软件光盘。正版啊!顺便还买了那个英蓓特的开发板。199¥…

查看全部问答>

我的TIzigbee开发板不知为什么烧录不了呢?

我两块板上电了,设备管理器上也有显示,说明驱动也安装了。但是在debug时,弹出的选择目标(target selection)中是空白的。!!!! 那个对话框下面就写着 a target connot be selected wh ...…

查看全部问答>