stm32流水灯实验

第一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)

一,实验目的和意义。

1,理解STM32时钟系统原理,重点分析时钟树。

2,学习配置STM32 SysTick系统定时器实现精确延时。

3,通过使用SysTick 系统定时器实现指定LED灯的定时规律亮灭。

二,实验基本原理与方法。

时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行。时钟系统犹如人的心脏,一旦有问题整个系统就崩溃。我们知道STM32属于高级单片机,其内部有很多的外设,但不是所有外设都使用同一时钟频率工作,比如内部看门狗和RTC,它只需约30KHz的时钟频率即可工作,所以内部时钟源就有多种选择。

在STM32时钟系统中,有5个重要的时钟源,分别是LSI、LSE、HSI、HSE、PLL。按照时钟频率分可分为高速时钟源和低速时钟源,在这5个中HSI,HSE以及PLL属于高速时钟,LSI和LSE属于低速时钟。按照时钟来源可分为外部时钟源和内部时钟源,外部时钟源就是在STM32晶振管脚处接入外部晶振的方式获取时钟源,其中HSE和LSE是外部时钟源,其他的是内部时钟源。

本次实验运用普中PZ6806系列(PZ6806L)开发板,通过简单的程序烧写实现对开发板各功能模块和开发工程的具体流程的熟悉。

三,主要仪器设备及耗材。

性能良好的笔记本电脑,普中PZ6806L开发板,keil软件,PZ-ISP V1.86普中自动下载软件。

四,实验方案与技术路线

    SysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个外设,被嵌入在NVIC中。它是一个24位向下递减的定时器,每计数一次所需时间为1/SYSTICK,SYSTICK是系统定时器时钟,它可以直接取自系统时钟,还可以通过系统时钟8分频后获取,本套程序中我们采用后者,即每计数一次所需时间为1/(72/8)us,换句话说在1us的时间内会计数9次。当定时器计数到0时,将从LOAD寄存器中自动重装定时器初值,重新向下递减计数,如此循环往复。如果开启SysTick中断的话,当定时器计数到0,将产生一个中断信号。因此只要知道计数的次数就可以准确得到它的延时时间。

SysTick定时器通常应用在操作系统中,为其提供时钟周期。其实SysTick定时器寄存器很简单,只有4个,分别是CTRL、LOAD、VAL、CALIB。这些寄存器都可以在《CortexM3权威指南(中文)》apdx D NVIC寄存器小结章节或者库函数core_cm3.h文件中找到,里面有详细的介绍。

第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等)

  • LED灯定时闪烁。

二,LED流水灯实验。

第三部分  结果与讨论(可加页)

一,实验结果分析(包括数据处理、实验现象分析、影响因素讨论,综合分析和结论等)

实验中使用KEIL5软件编程时分为两步,LED初始化和点亮D1指示灯,虽然实验中已给出代码,但仍需要读懂代码为后面的流水灯代码做出准备。对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询底层寄存器内容,而且即使程序写好,如果要换其他端口或者外设的话,修改起来非常麻烦,而且容易出错,移植性也差。基于这些原因,ST公司推出了一套固件库,内部已经将STM32的全部外设寄存器的控制封装好,给用户提供一些API函数,用户只需要学习如何使用这些API函数即可。本次即使用各种简单函数完成实验。

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值