- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
stm32延时的几种方法
STM32的几种延时方法(基于MDK固件库3.0,晶振8M)
单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms()。
1.普通延时法
这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫滴下面的代码是在网上搜到的,经测试延时比较精准。
//粗延时函数,微秒void delay_us(u16 time){ u16 i=0; while(time--) { i=10; //尹工用的17 while(i--) ; }}//毫秒void delay_ms(u16 time){ u16 i=0; while(time--) { i=12000; //尹工用的18000 while(i--) ; }}
2.SysTick 定时器延时
CM3 内核的处理器,内部包含了一个SysTick 定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。SysTick 在STM32 的参考手册里面介绍的很简单,其详细介绍,请参阅《Cortex-M3 权威指南》。
这里面也有两种方式实现,
a.中断方式
如下,定义延时时间time_delay,SysTick_Config()定义中断时间段,在中断中递减time_delay,从而实现延时。volatile unsigned long time_delay; // 延时时间,注意定义为全局变量//延时nmsvoid delay_ms(volatile unsigned long nms){ //SYSTICK分频--1ms的系统时钟中断 if (SysTick_Config(SystemFrequency/1000)) { while (1); } time_delay=nms;//读取定时时间 while(time_delay); SysTick-CTRL=0x00; //关闭计数器 SysTick-VAL =0X00; //清空计数器}//延时nusvoid delay_us(volatile unsigned long nus){ //SYSTICK分频--1us的系统时钟中断 if (SysTick_Config(SystemFrequency/1000000)) { while (1); } time_delay=nus;//读取定时时间 while(time_delay); SysTick-CTRL=0x00; //关闭计数器 SysTick-VAL =0X00; //清空计数器}
//在中断中将time_delay递减。实现延时
void SysTick_Handler(void){ if(time_delay) time_delay--;}
b.非??断方式
主要仿照原子的《STM32不完全手册》。SYSTICK 的时钟固定为HCLK 时钟的1/8,在这里我们选用内部时钟源72M,所以SYSTICK的时钟为9M,即SYSTICK定时器以9M的频率递减。SysTick 主要包含CTRL、LOAD、VAL、CALIB 等4 个寄存器,
SysTick-CTRL
位段 名称 类型 复位值 描述
16 COUNTFLAG R 0 如果在上次读本寄存器后systick已为0,则该位为1,若 读该位自动清零
2 CLKSOURCE RW 0 0:外部时钟源 1:内部时钟
1 TICKINT RW 0 0:减到0无动作;1:减到0产生systick异常请求
0 ENABLE RW 0 systick定时器使能位
SysTick- LOAD
位段 名称 类型 复位值 描述
23:0 RELOAD RW 0
您可能关注的文档
- ASCO2014乳腺癌研究50年.doc
- ATP400分子泵添加润滑油流程.docx
- AQP4在COPD支气管黏膜的表达及其与患者肺功能气道黏膜炎症的相关性.doc
- bbskaoyancom著名实证研究.doc
- C25喷射溷凝土配合比设计计算书.doc
- BOT融资方式在我国遇到的问题及对策.doc
- CagA与慢性胃炎症状及病理的相关性研究.doc
- canbus转向灯故障的检测与维修.doc
- BC计财务管理制度及会计财务处理办法.doc
- B物电102班心理健康问卷调查问卷结果分析.doc
- 2025年城市电单车停放秩序智能化解决方案评估报告.docx
- 2025年城市交通规划视角下新能源汽车充电设施布局策略研究报告.docx
- 罗格列酮对IgA肾病小鼠的干预效应及对肾小球NF-κB NP-1表达的调控机制研究.docx
- 汉服行业直播电商营销效果与用户生命周期管理2025.docx
- 2025年新能源行业并购整合策略:技术创新与产业升级趋势.docx
- 电商物流行业2025年市场分析:最后一公里配送模式创新报告.docx
- 干细胞治疗神经退行性疾病的研究热点与前沿技术报告.docx
- NOTEEXPRESS文献管理软件-北京林业大学图书馆.pptx
- 新能源汽车BMS技术升级,2025年高效能源管理方案报告.docx
- 露营地生态旅游与旅游目的地形象塑造研究报告.docx
最近下载
- 2025教资科目二教育知识与能力必背简答题汇总.pdf VIP
- 2025广东江门市江海区建设工程质量检测站合同制工作人员招聘5人笔试备考试题及答案解析.docx VIP
- 护理学科建设与发展 ppt.pptx
- 教资高中英语知识点总结.pdf VIP
- 智能供应链优化项目启动会PPT模板2025流程节点演示方案.pptx VIP
- 六年级数学《数与代数》教学设计.pdf VIP
- 居住空间设计(项目式)全套PPT课件.pptx
- 中联TC7530-16H塔吊使用说明书.pdf VIP
- 商务秘书实务案例.docx VIP
- 2025广东江门市江海区建设工程质量检测站合同制工作人员招聘5人笔试参考题库附答案解析.docx VIP
文档评论(0)