当前位置: 首页 > news >正文

魏县做网站wordpress 文章管理

魏县做网站,wordpress 文章管理,宁波营销网站建设外包,安卓下载app一、实验目的 使用定时器 2 进行中断点灯,500ms LED 灯翻转一次。 二,定时器溢出时间计算 Tout:定时器溢出时间 Ft:定时器的时钟源频率 ARR:自动重装载寄存器的值(可设置ARR从0开始,但是计数到…

一、实验目的

        使用定时器 2 进行中断点灯,500ms LED 灯翻转一次。

二,定时器溢出时间计算

Tout:定时器溢出时间
Ft:定时器的时钟源频率
ARR:自动重装载寄存器的值(可设置ARR从0开始,但是计数到1才会中断,不可能出现到0就中断,所有要+1),取值范围为“1-2^16”=>1-65535
PSC:预分频器寄存器的值(如果设置1分频,那么PSC=0,PSC+1 = 1,所以1分频就是psc+1,2分频就是psc+1+1),取值范围为“1-2^16”=>1-65535

 Ft/(psc+1) = 分频之后的时钟频率,而周期等于频率的倒数,所以1个计数周期,也就是1个计数的时间等于(psc+1)/Ft

(ARR+1) = 需要记多少个数

个数*时间 = (ARR+1)*(psc+1)/Ft = 定时器溢出时间

注意:一般情况下,我们喜欢把(psc+1)设置成Ft的倍数,所以当Ft是72(MHZ)时,(psc+1)=7200(注意取值范围哦)

例如,要定时 500ms,则:Ft=72M;PSC=7199(喜欢设置成倍数),则:ARR=4999;

倒推:72M = 72000 000

(5000*7200)/72000 000 = 5/10 = 0.5s = 500ms

三、定时器中断实验配置步骤

        msp 函数是对 MCU 相关的硬件进行初始化设置,通常被设计用于处理特定硬件外设或功能的底层初始化工作

四、开始配置

复制项目文件03-流水灯,重命名为17-定时器中断点灯

在Drivers\BSP目录下,新建文件夹timer,timer.c和timer.h

加载文件

编译

编译

代码:

main.c

#include "sys.h"
#include "delay.h"
#include "led.h"
#include "timer.h"int main(void)
{HAL_Init();                         /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */led_init();//初始化led灯timer_init(5000-1,7200-1);
//    led1_ON();
//    led1_OFF();while(1){ }
}

timer.c

#include "timer.h"
#include "led.h"TIM_HandleTypeDef timer_handle = {0};//定义结构体//定时器初始化函数
void timer_init(uint16_t arr,uint16_t psc)//把ARR和PSC当作参数传进来
{timer_handle.Instance = TIM2; //选择使用的定时器timer_handle.Init.Prescaler = psc; //PSCtimer_handle.Init.Period = arr; //ARRtimer_handle.Init.CounterMode = TIM_COUNTERMODE_UP;//配置成向上的,默认向上的timer_handle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;  //自动重装载,默认自动重装载HAL_TIM_Base_Init(&timer_handle);HAL_TIM_Base_Start_IT(&timer_handle);//设置使能更新中断,和启动计数器
}//msp函数
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM2){__HAL_RCC_TIM2_CLK_ENABLE();HAL_NVIC_SetPriority(TIM2_IRQn,2,2);//设置优先级HAL_NVIC_EnableIRQ(TIM2_IRQn);//设置使能中断}
}//中断服务函数 
void TIM2_IRQHandler(void)
{//一般还会调用一个公共处理的服务函数HAL_TIM_IRQHandler(&timer_handle); }
//更新中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim->Instance == TIM2){led1_Toggle();}
}

timer.h

#ifndef  __TIMER_H__
#define __TIMER_H__#include "sys.h"void timer_init(uint16_t arr,uint16_t psc);#endif

http://www.yayakq.cn/news/591331/

相关文章:

  • 广东快速做网站公司鄂尔多斯网站建设
  • 怎样才能申请网站安徽大学最近消息
  • 苏州品牌网站设计定制装饰工程合同范本
  • 投票网站如何做丰城网站建设公司
  • 网站页面管理计算机应用技术专业网站开发方向
  • 有没有什么推荐的网站怎么建单位的网站
  • 怎样自己做网站模板北京网站设计排名
  • 重庆网站推广哪家好北京朝阳区哪里有网站开发
  • 深圳京圳建设监理有限公司网站徐州小学网站建设
  • 重庆市住房和城乡建设网站模板网站的建设方式与方法
  • 做网站 售后服务里都写啥江苏建设集团招聘信息网站
  • 建设银行网站怎么登录赫山区网站建设
  • 佛山网站建设哪家评价高旅游电子商务的三创赛网站建设
  • 快要到期的域名网站有了网址可以建网站吗
  • 凡科网站插件代码免费做图片的网站有哪些
  • 做电影的网站赚什么钱企业网站为什么要备案
  • 宜昌外贸网站建设优化推广济南网络有限公司
  • 有什么网站可以接手工加工做wordpress mysql 配置文件
  • 点网站建设开发一个资金盘app多少钱
  • 邯郸邯山区网站建设申请域名地址
  • 广东seo网站推广代运营专业房产网站建设
  • 衡阳城乡建设局网站济宁最新通知今天
  • 制作精美网站建设服务周到如何卸载微wordpress
  • 企业门户网站布局特征毕设做网站 方面的论文
  • 网站导航条怎么做网站如何上线
  • 公主岭网站建设规划查域名ip
  • 电子商务网站建设流程是什么wordpress悬浮窗安装
  • 做视频网站收费侵权吗html5 社团网站模板 代码下载
  • 龙岗地区做网站公司网络推广渠道有哪些方式
  • 网站免费模版网上注册公司申请流程