- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验7——SysTick卓越工程师培养系列本书获深圳大学教材出版资助STM32F1开发标准教程
01实验内容
实验内容基于STM32核心板设计一个SysTick实验,内容包括:①新增SsTick 模块,该模块应包括3个API函数,分别是初始化 SysTick模块函数InitSysTick、微秒延时函数 DelayNus和毫秒延时函数 DelayNms;②在InitSysTick函数中可以调用 SysTick_Config 函数对 SysTick 的中断间隔进行调整;③微秒延时函数DelayNus和毫秒延时函数 DelayNms,至少有一个需要通过SsTick_Handler 中断服务函数实现;④在Main模块中调用IitSysTick 函数对 SysTick 模块进行初始化,调用DelayNms函数和DelayNus函数控制LED1和LED2交替闪烁,验证两个函数是否正确。学习SysTick功能框图及相关寄存器和固件库函数
02实验原理
1.SysTick功能框图如图8-1所示是SysTick 功能框图,下面依次介绍SysTick 时钟当前计数值寄存器和重装载数值寄存器。
1.SysTick功能框图AHB时钟或经过8分频的AHB 时钟作为 Cortex系统时钟,该时钟同时也是SysTick的时钟源。由于本书中所有实验的AHB 时钟频率均配置为72MHz,因此,最终的 SysTick时钟频率同样也是72MHz,或72MHz的8分频,即9MHZ,本书中所有实验的Cortex 系统时钟频率为72MHz,同样,SysTick 时钟频率也为72MHz。1.SysTick 时钟
1.SysTick功能框图SysTick 时钟(STK_CLK)作为 SysTick 计数器的时钟输入,SysTick 计数器是一个24位的递减计数器,对SysTick 时钟进行计数,每次计数的时间为1/STK_CLK,计数值保存于当前计数值寄存器(STK_VAL)。对于本实验而言,由于STK_CLK的频率为72MHz,因此SysTick计数器每次计数时间为1/72ps。当STK_VAL计数至0时STK_CTRL的COUNTFLAG会被置为 1,如果 STK_CTRL的 TICKINT为1,则产生 SysTick 异常请求;相反,如果STK_CTRL的TICKINT为0,则不产生Sys_Tick异常请求。2.当前计数值寄存器
1.SysTick功能框图SysTick计数器对STK_CLK时钟进行递减计数那么到底从哪个值开始计数到0呢?答案是重装载值STK_LOAD当SysTick 计数器计数到0时,由硬件自动将STK_LOAD中的值加载到STK_VAL,重新启动递减计数。本实验的STK_LOAD1000,因此,产生SysTick异常请求间隔为(1/72μs)x1000)=1000μs,即1ms产生一次SsTick异常请求。3.重装载数值寄存器
2.SysTick实验流程图分析图8-2是SysTick模块初始化与中断服务函数流程图。首先,通过IitSysTick 函数初始化SysTick,包括更新 SysTick 重装载数值存清除SysTick计数器、选择AHB 时钟作SysTick 时钟、使能异常请求,并使能SysTick,这些操作都是在SysTick Confg 函数中完成的。其次,判断SysTick 计数器是否计数到0,如果不为0,继续判断SvsTick 计数器是否计数到0,如果计数到0,则产生 SysTick 异常请求,并执行 SysTick Handler 中断服务函数SysTick Handler 函数主要是判断s iTimDelayCnt 是否为0如果为0则退出SysTick Handle函数,否则,siTimDelayCnt 执行递减操作。
2.SysTick实验流程图分析图8-3是DelayNms函数流程图首先DelayNms函数将参数nms赋值给siTimDelavCntsiTimDelayCnt是SysTick 模块的内部变量,该变量在SysTick Handler 中断服务函数中执行递减操作(在SysTick 实验中,s iTimDelayCnt 每1ms 执行一次减1操作)。其次,判siTimDelavCnt是否为0如果为0则退出DelavNms函数,否则继续判断siTimDelavCn是否为0。这样,siTimDelaCnt就从nms递减到0,如果nms为5,就可以实现5ms延时。
2.SysTick实验流程图分析图8-4是DelayNus 函数流程图。微秒级的延时与毫秒级的延时实现不同,微秒级的延时是通过一个while循环语内嵌一个for 循环和一个siTimCnt变量递减语实现的,for循语句和
您可能关注的文档
- ch12实验11——独立看门狗.pptx
- STM32F1开发标准教程 课件 ch13实验12——读 写内部Flash.pptx
- STM32F1开发标准教程 课件 ch14实验13——PWM输出.pptx
- STM32F1开发标准教程 课件 ch07实验6——定时器.pptx
- STM32F1开发标准教程 课件 ch09实验8——RCC.pptx
- STM32F1开发标准教程 课件 ch11实验10——OLED显示.pptx
- STM32F1开发标准教程 课件 ch15实验14——输入捕获.pptx
- STM32F1开发标准教程 课件 ch16实验15——DAC.pptx
- STM32F1开发标准教程 课件 ch17实验16——ADC.pptx
- STM32F1开发标准教程-教学日历.docx
- 2023年第二季度Cloudflare DDoS威胁报告.docx
- 2023年12月17日广西区税务系统内部遴选笔试真题及答案解析(管理类).pdf
- 危险货物运输从业人员(装卸管理员)考试题库附答案.docx
- 2023湖南益阳市南县事业单位招聘70人笔试参考题库(共500题)答案详解版.docx
- 2023年辽宁阜新彰武县事业单位招聘48人笔试参考题库(共500题)答案详解版.docx
- 2023年吉林省白城市洮南市面向下半年应征入伍高校毕业生招聘事业单位人员5人笔试参考题库(共500题)答案详解版.docx
- 2023年河北保定市清苑区招聘事业单位工作人员22人笔试参考题库(共500题)答案详解版.docx
- 2023年中日友好医院公开招聘普通外科代谢减重中心医师笔试参考题库(共500题)答案详解版.docx
- 2024年安徽省面向南开大学招录定向选调生530考试历年常考点(融合难、易错点)含答案详解.docx
- 2023年10月广西北海市乡镇(合浦专场)事业单位公开招聘工作人员116人考试历年高频考点(难、易错点甄选)带答案详解.docx
1亿VIP精品文档
相关文档
最近下载
- 三菱变频器FR-E820 FR-E840 FR-E860功能说明书.pdf
- ISO450012018职业健康安全管理体系8.1.4条款,需要查阅哪些资料,审核记录如何写?-审核员之家.docx VIP
- 消防安全重大风险隐患专项排查整治 2023 行动任务清单.docx
- 牛津上海版(深圳)五下Unit 6《Holidays》(第二课时).pptx
- 2023年延边大学信息管理与信息系统专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 【专家讲座培训】素质教育+五育并举+课程体系.pptx
- GB25467-铜镍钴工业污染物排放标准.pdf
- 《勾股定理》(第一课时).doc
- 幼儿园冬季传染病预防知识教育课件.pptx
- 智慧健康校园课件.pptx
文档评论(0)